:root{--primary: #7c6b9e;--primary-hover: #6a5a8a;--primary-on: #ffffff;--background: #f4f2f8;--surface: #ffffff;--surface-elevated: #ffffff;--text-primary: #1a1625;--text-secondary: #5c5668;--text-muted: #8a8496;--error: #c45c4a;--error-soft: #fde8e6;--border: #e8e4ef;--border-subtle: #f0edf5;--input-bg: #faf9fc;--input-border: #dcd7e6;--nav-bg: #faf9fc;--nav-border: #e8e4ef;--nav-active: #7c6b9e;--brand-mint: #b8e6d5;--brand-lavender: #ebe4f7;--brand-peach: #fed7aa;--shadow-sm: 0 1px 2px rgba(26, 22, 37, .05);--shadow-md: 0 4px 16px rgba(26, 22, 37, .08);--shadow-lg: 0 20px 50px -12px rgba(26, 22, 37, .18);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--focus-ring: 0 0 0 3px rgba(124, 107, 158, .28)}*{box-sizing:border-box}body{margin:0;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--background);color:var(--text-primary);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;background:var(--primary);color:var(--primary-on);border:none;border-radius:var(--radius-sm);padding:8px 16px;font-weight:600;transition:background .15s ease,transform .1s ease,box-shadow .15s ease}button:hover:not(:disabled){background:var(--primary-hover)}button:focus-visible{outline:none;box-shadow:var(--focus-ring)}button:disabled{background:#e8e5eb;color:#9e99a6;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}button.danger{background:var(--error);color:#fff}input,textarea,select{font:inherit;color:var(--text-primary);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);padding:10px 14px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring);background:var(--surface)}input::placeholder,textarea::placeholder{color:var(--text-secondary)}label{color:var(--text-primary);font-weight:500}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-layout{display:flex;min-height:100vh;width:100%}.app-nav{position:fixed;left:0;top:0;bottom:0;width:228px;background:var(--nav-bg);border-right:1px solid var(--nav-border);padding:22px 14px;flex-shrink:0;overflow-y:auto;box-shadow:var(--shadow-sm)}.app-nav .brand{font-weight:700;font-size:1.125rem;color:var(--text-primary);margin-bottom:24px;padding:0 8px}.app-nav ul{list-style:none;padding:0;margin:0}.app-nav li{margin-bottom:4px}.app-nav a{display:block;padding:10px 12px;border-radius:8px;color:var(--text-secondary);font-weight:500}.app-nav a:hover{background:var(--brand-lavender);color:var(--text-primary);text-decoration:none}.app-nav a.active{background:var(--nav-active);color:var(--primary-on)}.nav-group{margin-bottom:4px}.nav-group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-weight:500;font-size:inherit;font-family:inherit;cursor:pointer;text-align:left}.nav-group-toggle:hover{background:var(--brand-lavender);color:var(--text-primary)}.nav-group-toggle.active{background:var(--nav-active);color:var(--primary-on)}.nav-chevron{font-size:.7rem;opacity:.8}.nav-sub{list-style:none;margin:4px 0 4px 12px;border-left:1px solid var(--border);padding:0 0 0 8px}.nav-sub li{margin-bottom:2px}.nav-sub a{padding:6px 10px;font-size:.9rem}.nav-errors-link{display:flex;align-items:center;gap:6px}.nav-badge{background:#ef5350;color:#fff;border-radius:10px;font-size:.7rem;font-weight:700;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;line-height:1}.api-config-block{margin-top:16px}.api-config-toggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--input-bg)}.api-config-toggle .api-config-segment{padding:6px 12px;border:none;background:transparent;color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.api-config-toggle .api-config-segment:not(:last-child){border-right:1px solid var(--border)}.api-config-toggle .api-config-segment:hover{color:var(--text-primary);background:var(--brand-lavender)}.api-config-toggle .api-config-segment.active,.api-config-toggle .api-config-segment.active:hover{background:var(--primary);color:var(--primary-on)}.login-api-toggle{margin-top:12px}.app-nav .user-block{margin-top:auto;padding-top:24px;border-top:1px solid var(--border);font-size:.875rem;color:var(--text-secondary)}.app-nav .user-block button{margin-top:8px;width:100%}.app-main{flex:1;margin-left:228px;padding:28px 36px 40px;min-width:0}.page-title{font-size:1.625rem;font-weight:700;color:var(--text-primary);margin:0 0 8px;letter-spacing:-.03em}.page-subtitle{font-size:.9375rem;color:var(--text-secondary);margin:0 0 24px;line-height:1.55}.card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:22px 24px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:.875rem}.form-group input,.form-group textarea,.form-group select{width:100%}.error-msg{color:var(--error);font-size:.875rem;margin-top:8px}.login-error{padding:12px;margin-top:12px;margin-bottom:4px;background:#fde8e6;border:1px solid var(--error);border-radius:8px;font-weight:500}.login-shell{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 20px 32px;overflow-x:hidden}.login-shell--loading{background:var(--background)}.login-shell-bg{position:fixed;inset:0;z-index:0;background:radial-gradient(ellipse 120% 80% at 100% -20%,rgba(124,107,158,.22),transparent 55%),radial-gradient(ellipse 100% 70% at -10% 110%,rgba(184,230,213,.35),transparent 50%),radial-gradient(ellipse 60% 50% at 50% 50%,rgba(235,228,247,.9),transparent),linear-gradient(165deg,#f8f6fc,#f0ecf8 45%,#ebe6f4);pointer-events:none}.login-center{position:relative;z-index:1;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:stretch;gap:28px}.login-brand{display:flex;align-items:center;gap:14px;justify-content:center}.login-brand-mark{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,var(--primary) 0%,#5d4d78 100%);color:var(--primary-on);font-weight:700;font-size:1.25rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);letter-spacing:-.02em}.login-brand-text{display:flex;flex-direction:column;gap:2px;text-align:left}.login-brand-name{font-size:1.375rem;font-weight:700;color:var(--text-primary);letter-spacing:-.03em;line-height:1.2}.login-brand-badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.login-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:32px 28px 28px;box-shadow:var(--shadow-lg)}.login-card-header{margin-bottom:24px}.login-title{margin:0 0 8px;font-size:1.375rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.login-lede{margin:0;font-size:.9375rem;color:var(--text-secondary);line-height:1.5}.login-form{margin:0}.login-field label{font-size:.8125rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.login-field input{width:100%;min-height:48px;border-radius:var(--radius-md);font-size:.9375rem}.login-alert{padding:12px 14px;margin-bottom:4px;background:var(--error-soft);border:1px solid rgba(196,92,74,.35);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:#8b3d32}.login-submit{width:100%;margin-top:8px;min-height:48px;border-radius:var(--radius-md);font-size:.9375rem;box-shadow:0 2px 8px #7c6b9e59}.login-submit:hover:not(:disabled){box-shadow:0 4px 14px #7c6b9e66}.login-footer{text-align:center;display:flex;flex-direction:column;align-items:center}.login-footer-label{margin:0 0 10px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.login-footer .api-config-toggle{border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.login-loading{display:flex;gap:8px;align-items:center}.login-loading-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);opacity:.35;animation:login-dot 1.2s ease-in-out infinite}.login-loading-dot:nth-child(2){animation-delay:.15s}.login-loading-dot:nth-child(3){animation-delay:.3s}@keyframes login-dot{0%,80%,to{opacity:.25;transform:scale(.9)}40%{opacity:1;transform:scale(1)}}.parity-pairs{display:flex;flex-direction:column;gap:24px;margin-top:16px}.parity-card-header{display:flex;align-items:center;gap:8px;width:100%;padding:0 0 8px;margin:0 0 8px;border:none;border-bottom:1px solid var(--border);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.parity-card-header:hover{color:var(--primary)}.parity-card-chevron{font-size:.75rem;color:var(--text-secondary);flex-shrink:0}.parity-label{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.parity-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.parity-column{min-width:0}.parity-column-label{font-size:12px;margin-bottom:4px;color:var(--text-secondary)}.parity-image{max-width:50%;border:1px solid var(--border);border-radius:8px;display:block}.parity-placeholder{padding:24px;background:var(--background);border-radius:8px;color:var(--text-secondary);font-size:.875rem}.parity-uploaded{font-size:11px;color:var(--text-secondary);margin-top:4px}.parity-comment{font-size:.875rem;color:var(--text-secondary);margin-top:8px;padding:8px;background:var(--background);border-radius:6px;white-space:pre-wrap}.parity-edit-pair{margin-top:16px;padding:12px;border:1px solid var(--border);border-radius:8px}.parity-edit-header{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.parity-edit-label{min-width:200px;width:100%;max-width:320px;padding:8px 10px}.parity-remove-pair{margin-left:auto;padding:6px 12px;font-size:.875rem}.parity-edit-grid{margin-bottom:8px}.parity-edit-upload-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.parity-file-input{display:none}.parity-upload-btn{flex-shrink:0;width:32px;height:32px;min-width:32px;padding:0;font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.parity-url-input{flex:1;min-width:0;padding:6px 8px;font-size:.875rem}.parity-edit-preview{margin-top:4px;max-height:100px;object-fit:contain}.parity-comment-input{width:100%;margin-top:8px;padding:8px;font-size:.875rem;resize:vertical;min-height:56px}.parity-comment-inline{min-height:48px}.parity-export-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.parity-export-modal{max-width:560px;width:100%;max-height:90vh;display:flex;flex-direction:column}.parity-export-textarea{width:100%;min-height:200px;font-family:inherit;font-size:.875rem;resize:vertical}@media(max-width:768px){.parity-grid{grid-template-columns:1fr}.parity-edit-label{max-width:none}}@media(max-width:768px){.app-nav{width:100%;min-height:auto;height:auto;bottom:auto;left:0;right:0;padding:12px 16px;border-right:none;border-bottom:1px solid var(--nav-border);display:flex;flex-wrap:wrap;align-items:center;gap:8px;overflow:visible;z-index:200}.app-nav .app-nav-toggle{order:-1;flex-shrink:0}.app-nav .brand{margin-bottom:0;margin-right:auto;flex-shrink:0;order:0}.app-nav ul{display:none;position:absolute;top:100%;left:0;right:0;background:var(--nav-bg);border-bottom:1px solid var(--nav-border);padding:12px;max-height:70vh;overflow-y:auto;z-index:1000;margin:0;list-style:none;box-shadow:0 4px 12px #0000001a}.app-nav.nav-open ul{display:block;width:100%;min-width:100%}.app-nav .nav-group,.app-nav .nav-sub{margin:0;padding:0;border:none}.app-nav .api-config-block{order:10;width:100%;margin-top:0;flex-basis:100%}.app-nav .user-block{margin-top:0;padding-top:0;border-top:none;order:0;display:flex;align-items:center;gap:8px}.app-nav .user-block button{margin-top:0;width:auto}.app-main{margin-left:0;margin-top:52px;padding:16px}}.app-nav-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--border);background:var(--surface);color:var(--text-primary);border-radius:8px}@media(max-width:768px){.app-nav-toggle{display:inline-flex}}
