:root{--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--muted:#64748b;--primary:#2563eb;--primary-soft:#eff6ff;--primary-hover:#1d4ed8;--success:#16a34a;--success-soft:#f0fdf4;--warning:#f59e0b;--warning-soft:#fffbeb;--danger:#dc2626;--danger-soft:#fef2f2;--shadow-sm:0 1px 2px #0f172a0a;--shadow:0 1px 3px #0f172a14, 0 1px 2px #0f172a0a;--shadow-md:0 4px 12px #0f172a14;--ease:cubic-bezier(.4, 0, .2, 1);--t-fast:.12s var(--ease);--t:.16s var(--ease);--r-sm:6px;--r:8px;--r-lg:10px;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.25rem;--s-6:1.5rem;--s-8:2rem;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.875rem;--fs-md:.9375rem;--fs-lg:1rem;--fs-xl:1.5rem}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--r-sm)}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-sm);cursor:pointer;transition:background-color var(--t-fast), border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);padding:.5rem 1rem;font-weight:500}button:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:var(--shadow-sm)}button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button.secondary{width:100%}.loading{height:100%;color:var(--muted);place-items:center;display:grid}.signin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);max-width:420px;box-shadow:var(--shadow-md);text-align:center;margin:10vh auto;padding:2rem}.signin-card h1{letter-spacing:-.01em;margin-top:0;font-size:1.5rem;font-weight:600}.signin-card .error{color:var(--danger)}.admin-shell{flex-direction:column;height:100%;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:1;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;display:flex}.topbar h1{letter-spacing:-.01em;margin:0;font-size:.9375rem;font-weight:600}.site-selector{align-items:center;gap:var(--s-2);display:flex}.site-selector label{font-size:var(--fs-base);color:var(--text);font-weight:500}.site-selector select{font:inherit;font-size:var(--fs-base);padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:border-color var(--t-fast), box-shadow var(--t-fast)}.site-selector select:hover:not(:disabled){border-color:var(--border-strong)}.site-selector select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.site-selector select:disabled{opacity:.6;cursor:not-allowed}.topbar-right{align-items:center;gap:.75rem;margin-left:auto;display:flex}.topbar-right .email{color:var(--muted);font-size:.875rem}.layout{flex:1;grid-template-columns:260px 1fr;min-height:0;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:1rem;padding:1rem .75rem;display:flex;overflow-y:auto}.sidebar-group{flex-direction:column;gap:.5rem;display:flex}.sidebar-label{text-transform:uppercase;color:var(--muted);letter-spacing:.08em;padding:0 .5rem;font-size:.6875rem;font-weight:600}.lang-select{width:100%;font:inherit;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:.5rem .75rem;font-size:.875rem}.lang-select:hover:not(:disabled){border-color:var(--border-strong)}.lang-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.lang-select:disabled{opacity:.6;cursor:not-allowed}.sidebar-sections{flex:1;min-height:0;overflow-y:auto}.section-nav{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.section-nav button{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--text);transition:background-color var(--t-fast), color var(--t-fast);background:0 0;border:0;padding:.5rem .75rem .5rem 1rem;font-size:.875rem;font-weight:500;line-height:1.4;position:relative}.section-nav button:hover:not(:disabled){background:var(--surface-2);transform:none}.section-nav button.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.section-nav button.active:before{content:"";background:var(--primary);border-radius:0 3px 3px 0;width:3px;position:absolute;top:20%;bottom:20%;left:0}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;margin-top:auto;padding-top:1rem;display:flex}.toolbar-section{color:var(--muted);font-size:.875rem}.content{flex-direction:column;min-height:0;padding:1.5rem;display:flex}.toolbar{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.toolbar strong{font-size:.9375rem;font-weight:600}.toolbar .spacer{flex:1}.status{border-radius:var(--r-sm);background:var(--warning-soft);color:#92400e;border:1px solid #fde68a;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:500}.status.ok{background:var(--success-soft);color:#14532d;border-color:#bbf7d0}.status.error{background:var(--danger-soft);color:#7f1d1d;border-color:#fecaca}.json-editor{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-sm);resize:none;white-space:pre;tab-size:2;min-height:60vh;color:var(--text);transition:border-color var(--t-fast), box-shadow var(--t-fast);flex:1;padding:1rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.6}.json-editor:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.hint{color:var(--muted);margin-top:.5rem;font-size:.8125rem}hr{border:0;border-top:1px solid var(--border);margin:1rem 0}.view-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);gap:2px;margin-left:.5rem;padding:2px;display:inline-flex;overflow:hidden}.view-toggle button{color:var(--muted);background:0 0;border:0;border-radius:4px;padding:.25rem .75rem;font-size:.8125rem;font-weight:500}.view-toggle button:hover:not(:disabled){color:var(--text);background:0 0}.view-toggle button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.view-toggle button+button{border-left:0}.form-body{flex:1;padding-right:.25rem;overflow-y:auto}.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--t);margin-bottom:.75rem;overflow:hidden}.form-section:last-child{margin-bottom:0}.form-section:hover{box-shadow:var(--shadow)}.form-section-header{text-align:left;cursor:pointer;width:100%;transition:background-color var(--t-fast);background:0 0;border:0;border-radius:0;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.9375rem;display:flex}.form-section.closed .form-section-header{border-radius:0}.form-section-header:hover{background:var(--surface-2);border-color:#0000;transform:none}.form-section-toggle{color:var(--muted);width:1rem;transition:transform var(--t);font-size:.75rem;display:inline-block}.form-section-title{letter-spacing:-.005em;font-weight:600}.form-section-description{color:var(--muted);margin-left:auto;font-size:.8125rem;font-weight:400}.form-section-body{padding:var(--s-4) var(--s-4) var(--s-5);border-top:1px solid var(--border);gap:var(--s-4);background:var(--surface);flex-direction:column;display:flex}.form-section-body .form-section{background:var(--surface-2);box-shadow:none;margin-bottom:0}.form-section-body .form-section:hover{box-shadow:none}.form-section-body .form-section .form-section-body{background:var(--surface-2);gap:var(--s-3)}.form-field{flex-direction:column;flex:0 auto;gap:.375rem;min-width:0;display:flex}.form-row>.form-field{flex:200px}.form-field label{color:var(--text);font-size:.8125rem;font-weight:500}.form-field input[type=text],.form-field textarea,.form-field select{font:inherit;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);width:100%;transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:.5rem .75rem;font-size:.875rem}.form-field input[type=text]:hover,.form-field textarea:hover,.form-field select:hover{border-color:var(--border-strong)}.form-field textarea,.form-array-item textarea{resize:vertical;field-sizing:content;height:auto;min-height:calc(3em + 1rem);max-height:40vh;font-family:inherit;line-height:1.5}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.form-hint{color:var(--muted);font-size:.75rem}.form-row{flex-wrap:wrap;gap:1rem;display:flex}.block-list-item-actions{align-items:center;gap:.5rem;display:flex}.block-list-item-actions button.secondary{width:auto}.block-list-add{align-items:flex-start}.block-list-add select{width:auto;min-width:14rem}.form-array{flex-direction:column;gap:.5rem;display:flex}.form-array-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.form-array-header strong{font-size:.875rem;font-weight:600}.form-empty{color:var(--muted);margin:.25rem 0;font-size:.8125rem;font-style:italic}.form-array-item{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color var(--t-fast), background-color var(--t-fast);grid-template-columns:100px 1fr auto;align-items:center;gap:.5rem;padding:.5rem .75rem;display:grid}.form-array-item:hover{border-color:var(--border-strong)}.form-array-item-label{color:var(--muted);text-align:right;font-size:.8125rem;font-weight:500}.form-array-item input,.form-array-item textarea{font:inherit;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:.375rem .625rem;font-size:.875rem}.form-array-item input:focus,.form-array-item textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.form-array-actions{gap:.25rem;display:flex}.form-array-object .form-array-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);transition:border-color var(--t-fast);padding:.75rem 1rem}.form-array-object .form-array-card:hover{border-color:var(--border-strong)}.form-array-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.form-array-card-header strong{font-size:.875rem;font-weight:600}.form-array-card-body{flex-direction:column;gap:.75rem;display:flex}button.ghost{color:var(--muted);box-shadow:none;background:0 0;border:1px solid #0000;padding:.25rem .5rem;font-size:.8125rem}button.ghost:hover:not(:disabled){background:var(--surface);border-color:var(--border);color:var(--text)}button.ghost.danger{color:var(--danger)}button.ghost.danger:hover:not(:disabled){background:var(--danger-soft);border-color:#fecaca}.icon-picker{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);flex-wrap:wrap;gap:.375rem;max-height:14rem;padding:.5rem;display:flex;overflow-y:auto}.icon-picker-btn{border-radius:var(--r-sm);background:var(--surface);width:2.5rem;height:2.5rem;color:var(--text);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast), color var(--t-fast);border:1px solid #0000;justify-content:center;align-items:center;display:flex}.icon-picker-btn:hover{border-color:var(--border-strong);background:var(--surface)}.icon-picker-btn.selected{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.icon-picker-btn .material-symbols-outlined{pointer-events:none;font-size:1.25rem}
