:root{--brand:#115e49;--brand-dark:#0a3d2f;--brand-light:#167a5f;--brand-accent:#10b981;--brand-soft:#eff7f4;--brand-border:#cde2dc;--accent:#0284c7;--accent-soft:#f0f9ff;--danger:#dc2626;--danger-soft:#fef2f2;--warning:#d97706;--warning-soft:#fffbeb;--success:#16a34a;--success-soft:#f0fdf4;--bg:#f8faf9;--surface:#fff;--surface-subtle:#f1f5f3;--border:#e2e8e5;--border-strong:#cbd5e1;--text:#0f172a;--text-muted:#475569;--text-subtle:#64748b;--radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 25px -5px #0000001a, 0 8px 10px -6px #0000000f;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;line-height:1.5;display:flex}.topbar{background:var(--brand-dark);color:#fff;z-index:100;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #00000026}.brand-group{align-items:center;gap:.85rem;display:flex}.brand-logo{width:auto;height:34px;display:block}.brand-title{letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.brand-badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;background:#ffffff2e;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.topbar-actions{align-items:center;gap:.75rem;display:flex}.btn{border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .95rem;font-family:inherit;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .18s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-accent);color:#064e3b}.btn-primary:hover:not(:disabled){background:#34d399;transform:translateY(-1px)}.btn-emerald{background:var(--brand);color:#fff}.btn-emerald:hover:not(:disabled){background:var(--brand-light)}.btn-outline{color:#fff;background:0 0;border-color:#ffffff40}.btn-outline:hover:not(:disabled){background:#ffffff1a;border-color:#fff6}.btn-light{border-color:var(--border);color:var(--text);background:#fff}.btn-light:hover:not(:disabled){background:var(--surface-subtle);border-color:var(--border-strong)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}.btn-danger:hover:not(:disabled){background:#fee2e2}.btn-sm{border-radius:var(--radius-sm);padding:.35rem .65rem;font-size:.8rem}.connection-pill{border-radius:var(--radius-full);color:#e2e8f0;background:#00000040;align-items:center;gap:.45rem;padding:.3rem .65rem;font-size:.78rem;display:flex}.status-dot{background:#94a3b8;border-radius:50%;width:8px;height:8px}.status-dot.online{background:#34d399;box-shadow:0 0 6px #34d399}.status-dot.busy{background:#fbbf24;animation:1.2s infinite pulse}.status-dot.error{background:#f87171}@keyframes pulse{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}.admin-wrap{flex:1;width:100%;max-width:1360px;margin:0 auto;padding:1.5rem}.banner{border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.banner.warning{border-left-color:var(--warning);background:var(--warning-soft)}.banner.info{border-left-color:var(--accent);background:var(--accent-soft)}.action-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.action-header-left{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.action-header-right{align-items:center;gap:.75rem;display:flex}.search-box{min-width:280px;position:relative}.search-input{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);background:#fff;outline:none;padding:.5rem .85rem .5rem 2.25rem;font-family:inherit;font-size:.875rem;transition:border-color .15s}.search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #115e491f}.search-icon{color:var(--text-subtle);font-size:.9rem;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.filter-select{border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;background:#fff;outline:none;padding:.5rem .85rem;font-family:inherit;font-size:.875rem}.deploy-card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;margin-bottom:1.5rem;padding:1.15rem 1.5rem;display:flex}.deploy-info{align-items:center;gap:1rem;display:flex}.deploy-icon{background:var(--brand-soft);width:44px;height:44px;color:var(--brand);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.deploy-title{color:var(--text);font-size:.95rem;font-weight:700}.deploy-status-text{color:var(--text-muted);align-items:center;gap:.5rem;margin-top:.15rem;font-size:.825rem;display:flex}.posts-card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;overflow:hidden}.posts-table{border-collapse:collapse;text-align:left;width:100%}.posts-table th{background:var(--surface-subtle);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding:.85rem 1.25rem;font-size:.78rem;font-weight:700}.posts-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.85rem 1.25rem;font-size:.875rem}.posts-table tr:last-child td{border-bottom:none}.posts-table tr:hover td{background:#fafcfb}.post-cell-title{color:var(--text);font-weight:600;line-height:1.35;text-decoration:none;display:block}.post-cell-title:hover{color:var(--brand)}.post-cell-meta{color:var(--text-subtle);font-size:.775rem;font-family:var(--font-mono);margin-top:.25rem}.post-thumb{border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-subtle);border:1px solid var(--border);width:58px;min-width:58px;max-width:58px;height:40px;min-height:40px;max-height:40px;display:block}.badge-category{border-radius:var(--radius-full);background:var(--brand-soft);color:var(--brand-dark);padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.table-actions{justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.modal-backdrop{backdrop-filter:blur(4px);z-index:200;opacity:0;pointer-events:none;background:#0f172a8c;justify-content:center;align-items:center;padding:1.5rem;transition:opacity .2s;display:flex;position:fixed;inset:0}.modal-backdrop.is-open{opacity:1;pointer-events:auto}.modal-box{border-radius:var(--radius-lg);width:100%;max-width:620px;max-height:90vh;box-shadow:var(--shadow-lg);border:1px solid var(--border);background:#fff;transition:transform .2s;overflow-y:auto;transform:translateY(10px)}.modal-backdrop.is-open .modal-box{transform:translateY(0)}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{color:var(--text);font-size:1.15rem;font-weight:700}.modal-close{cursor:pointer;color:var(--text-subtle);background:0 0;border:none;padding:.25rem;font-size:1.25rem;line-height:1}.modal-body{padding:1.5rem}.modal-footer{border-top:1px solid var(--border);background:var(--surface-subtle);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);justify-content:flex-end;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text);margin-bottom:.4rem;font-size:.825rem;font-weight:700;display:block}.form-label span.req{color:var(--danger)}.form-hint{color:var(--text-subtle);margin-top:.3rem;font-size:.775rem}.form-input,.form-textarea,.form-select{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);background:#fff;outline:none;padding:.6rem .85rem;font-family:inherit;font-size:.875rem;transition:all .15s}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #115e491f}.form-textarea{resize:vertical;min-height:80px}.editor-container{display:none}.editor-container.is-active{display:block}.list-container.is-hidden{display:none}.editor-header{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.5rem;display:flex}.editor-title-wrap{align-items:center;gap:.85rem;display:flex}.editor-grid{grid-template-columns:1fr 340px;gap:1.5rem;display:grid}@media (width<=960px){.editor-grid{grid-template-columns:1fr}}.editor-main-card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;padding:1.5rem}.editor-side-card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:1.25rem;padding:1.25rem;display:flex}.md-toolbar{background:var(--surface-subtle);border:1px solid var(--border);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);border-bottom:none;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.5rem;display:flex}.toolbar-btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);background:#fff;align-items:center;gap:.3rem;padding:.3rem .55rem;font-size:.8rem;font-weight:600;display:inline-flex}.toolbar-btn:hover{background:var(--brand-soft);color:var(--brand-dark);border-color:var(--brand-border)}.toolbar-sep{background:var(--border);width:1px;height:20px;margin:0 .2rem}.md-textarea{width:100%;min-height:440px;font-family:var(--font-mono);border:1px solid var(--border);border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);color:var(--text);resize:vertical;background:#fff;outline:none;padding:1rem;font-size:.9rem;line-height:1.6}.md-textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #115e491a}.editor-view-tabs{gap:.35rem;margin-bottom:.75rem;display:flex}.view-tab{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);background:0 0;border:1px solid #0000;padding:.35rem .75rem;font-size:.8rem;font-weight:600}.view-tab.active{background:var(--brand-soft);color:var(--brand-dark);border-color:var(--brand-border)}.preview-container{border:1px solid var(--border);border-radius:var(--radius);background:#fff;min-height:440px;padding:1.5rem;display:none;overflow-y:auto}.preview-container.is-active{display:block}.preview-container h1,.preview-container h2,.preview-container h3{color:var(--brand-dark);margin-top:1.5rem;margin-bottom:.75rem;font-weight:700}.preview-container p{color:#334155;margin-bottom:1rem;line-height:1.7}.preview-container img{border-radius:10px;max-width:100%;height:auto;margin:1rem 0}.preview-container .gallery{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:1.5rem 0;display:grid}.preview-container .gallery img{object-fit:cover;width:100%;height:140px;margin:0}.preview-container blockquote{border-left:4px solid var(--brand-accent);background:var(--brand-soft);color:var(--brand-darker);border-radius:0 8px 8px 0;margin:1rem 0;padding:.75rem 1rem}.split-container{grid-template-columns:1fr 1fr;gap:1rem;display:none}.split-container.is-active{display:grid}.toast{color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:999;opacity:0;pointer-events:none;background:#0f172a;align-items:center;gap:.65rem;padding:.85rem 1.25rem;font-size:.875rem;font-weight:500;transition:all .25s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;transform:translateY(20px)}.toast.show{opacity:1;pointer-events:auto;transform:translateY(0)}.toast.success{background:#065f46;border:1px solid #059669}.toast.error{background:#991b1b;border:1px solid #dc2626}.toast.info{background:#1e3a8a;border:1px solid #2563eb}.upload-dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;background:var(--surface-subtle);cursor:pointer;padding:1rem;transition:all .15s}.upload-dropzone:hover{border-color:var(--brand);background:var(--brand-soft)}.upload-icon{color:var(--brand);margin-bottom:.3rem;font-size:1.5rem}.cover-preview{object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-subtle);width:100%;height:160px;margin-top:.5rem;display:block}
