:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f9fafb;--border:#e4e7ec;--border-strong:#cfd6de;--text:#101828;--text-2:#475467;--text-3:#98a2b3;--primary:#4f46e5;--primary-hover:#4338ca;--primary-soft:#eef2ff;--danger:#dc2626;--danger-soft:#fef2f2;--success:#067647;--success-soft:#ecfdf3;--warning:#b54708;--warning-soft:#fffaeb;--purple:#6941c6;--purple-soft:#f4ebff;--chrome:#0f172a;--chrome-2:#1e293b;--chrome-text:#cbd5e1;--chrome-active:#312e81;--radius:8px;--shadow-sm:0 1px 2px rgba(16,24,40,.06);--shadow-lg:0 12px 32px rgba(16,24,40,.18);--font:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter",Roboto,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}body,html{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:20px;font-weight:700;letter-spacing:-.01em}h2{font-size:16px}h2,h3{font-weight:600}h3{font-size:14px}.code,code{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.code,code,pre.code-block{font-family:var(--mono);font-size:12.5px}pre.code-block{background:#0f172a;color:#e2e8f0;border-radius:var(--radius);padding:14px 16px;overflow-x:auto;line-height:1.55}.shell{display:flex;flex-direction:column;min-height:100vh}.topbar{gap:12px;height:52px;padding:0 16px;background:var(--chrome);position:-webkit-sticky;position:sticky;top:0;z-index:40}.topbar,.topbar .brand{display:flex;align-items:center;color:#fff}.topbar .brand{gap:8px;font-weight:700;font-size:15px;letter-spacing:-.01em}.topbar .brand .logo{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#6366f1,#a855f7);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}.topbar .divider{width:1px;height:22px;background:#334155}.selector{display:inline-flex;align-items:center;gap:6px;background:var(--chrome-2);border:1px solid #334155;color:var(--chrome-text);border-radius:6px;padding:5px 10px;font-size:13px;cursor:pointer;font-family:inherit}.selector:hover{border-color:#475569;color:#fff}.selector .selector-label{color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.selector select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:inherit;font-size:13px;font-family:inherit;cursor:pointer;outline:none;max-width:180px}.selector select option{color:var(--text)}.body-wrap{display:flex;flex:1 1;min-height:0}.sidebar{width:216px;flex-shrink:0;background:var(--chrome);padding:12px 8px 24px;display:flex;flex-direction:column;gap:2px;position:-webkit-sticky;position:sticky;top:52px;height:calc(100vh - 52px);overflow-y:auto}.sidebar .nav-section{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;padding:14px 12px 6px}.sidebar a.nav-item{display:flex;align-items:center;gap:10px;color:var(--chrome-text);padding:8px 12px;border-radius:6px;font-size:13.5px;text-decoration:none}.sidebar a.nav-item:hover{background:var(--chrome-2);color:#fff}.sidebar a.nav-item.active{background:var(--chrome-active);color:#fff;font-weight:600}.sidebar .nav-icon{width:17px;text-align:center;opacity:.85}main.content{flex:1 1;min-width:0;padding:24px 28px 64px;max-width:1600px}.page-header{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.page-header h1{margin:0}.page-header .subtitle{color:var(--text-2);font-size:13px;margin-top:2px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:6px;border:1px solid var(--primary);background:var(--primary);color:#fff;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .12s;white-space:nowrap}.btn:hover{background:var(--primary-hover)}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn.secondary:hover{background:var(--surface-2)}.btn.ghost{background:transparent;color:var(--text-2);border-color:transparent}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.danger{border-color:var(--danger);background:var(--danger);color:#fff}.btn.danger.secondary{background:var(--surface);color:var(--danger)}.btn.danger.secondary:hover{background:var(--danger-soft)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{padding:4px 10px;font-size:12px}.btn.tiny{padding:2px 7px;font-size:11.5px}.input,select.input,textarea.input{width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px;font-size:13.5px;font-family:inherit;background:var(--surface);color:var(--text)}.input:focus{outline:2px solid rgba(79,70,229,.22);border-color:var(--primary)}.input::placeholder{color:var(--text-3)}textarea.input{resize:vertical}label.field-label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;margin:14px 0 5px;color:var(--text)}.field-type-tag{font-size:10.5px;font-weight:500;color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);padding:0 5px;border-radius:4px;text-transform:lowercase}.help-text{font-size:12px;color:var(--text-2);margin:4px 0 0}.error-text{color:var(--danger);font-size:13px}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;margin:8px 0;cursor:pointer}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm)}.card h2:first-child{margin-top:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:14px;gap:14px}.type-card{display:flex;flex-direction:column;gap:8px;transition:box-shadow .12s,border-color .12s}.type-card:hover{border-color:var(--primary);box-shadow:0 2px 10px rgba(79,70,229,.12)}.type-card .type-icon{width:34px;height:34px;border-radius:8px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:16px}.type-card .type-title{font-weight:600;font-size:14.5px}.type-card .type-meta{color:var(--text-2);font-size:12.5px}.type-card .type-actions{display:flex;gap:6px;margin-top:4px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}table.list{width:100%;border-collapse:collapse}table.list td,table.list th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13.5px;vertical-align:middle}table.list th{background:var(--surface-2);font-weight:600;font-size:12px;color:var(--text-2);text-transform:uppercase;letter-spacing:.03em}table.list tr:last-child td{border-bottom:none}table.list tbody tr{cursor:default}table.list tbody tr:hover{background:#fafbff}table.list td.actions{text-align:right;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.draft{background:#f2f4f7;color:var(--text-2)}.badge.in_review{background:var(--warning-soft);color:var(--warning)}.badge.published{background:var(--success-soft);color:var(--success)}.badge.archived{background:var(--purple-soft);color:var(--purple)}.badge.plain:before{display:none}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:12px;color:var(--text-2)}.chip button{border:none;background:none;cursor:pointer;color:var(--text-3);padding:0;font-size:12px}.chip button:hover{color:var(--danger)}.key-type{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:5px}.key-type.delivery{background:var(--success-soft);color:var(--success)}.key-type.preview{background:var(--warning-soft);color:var(--warning)}.key-type.management{background:var(--purple-soft);color:var(--purple)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:4px}.tabs .tab{background:none;font-family:inherit;padding:8px 14px;font-size:13px;font-weight:500;color:var(--text-2);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs .tab:hover{color:var(--text)}.tabs .tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.tabs .tab .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--warning);margin-left:6px;vertical-align:middle}.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(15,23,42,.55);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow-y:auto}.modal{background:var(--surface);border-radius:12px;box-shadow:var(--shadow-lg);width:100%;max-width:560px;padding:20px 22px;animation:modal-in .14s ease-out}.modal.wide{max-width:860px}@keyframes modal-in{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.modal h2{margin:0 0 4px}.modal .modal-sub{color:var(--text-2);font-size:13px;margin:0 0 12px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar .input{width:auto;min-width:200px}.toolbar select.input{min-width:140px}.editor-layout{display:flex;gap:16px;align-items:flex-start}.editor-form{flex:1 1 400px;min-width:340px}.editor-preview{flex:1.35 1 480px;min-width:380px;position:-webkit-sticky;position:sticky;top:68px}.editor-side{flex:0 0 320px;min-width:300px}.preview-frame{width:100%;height:calc(100vh - 190px);min-height:480px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.field-selected{outline:2px solid var(--primary);outline-offset:3px;border-radius:6px}.save-indicator{font-size:12.5px;color:var(--text-2);display:inline-flex;align-items:center;gap:5px}.save-indicator .dot{width:7px;height:7px;border-radius:50%}.save-indicator .dot.saved{background:var(--success)}.save-indicator .dot.dirty{background:var(--warning)}.save-indicator .dot.saving{background:var(--primary);animation:pulse .9s infinite}.save-indicator .dot.error{background:var(--danger)}@keyframes pulse{50%{opacity:.35}}.ref-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:6px;padding:7px 10px;background:var(--surface);margin-top:6px}.ref-item .ref-title{font-weight:500;font-size:13px;flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ref-item .ref-type{font-size:11px;color:var(--text-3)}.ref-item .icon-btn{border:none;background:none;cursor:pointer;color:var(--text-3);font-size:13px;padding:2px 4px;border-radius:4px}.ref-item .icon-btn:hover{background:var(--surface-2);color:var(--text)}.ref-item.dragging{opacity:.4}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:10px;gap:10px;max-height:420px;overflow-y:auto;padding:2px}.picker-tile{border:2px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer;background:var(--surface);text-align:center}.picker-tile.selected,.picker-tile:hover{border-color:var(--primary)}.picker-tile.selected{box-shadow:0 0 0 2px rgba(79,70,229,.25)}.picker-tile .thumb{height:84px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--text-3);overflow:hidden}.picker-tile .thumb img{width:100%;height:100%;object-fit:cover}.picker-tile .tile-name{font-size:11px;padding:5px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-gap:14px;gap:14px}.media-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;cursor:pointer;position:relative}.media-card.selected,.media-card:hover{border-color:var(--primary)}.media-card.selected{box-shadow:0 0 0 2px rgba(79,70,229,.25)}.media-card .thumb{height:120px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--text-3);overflow:hidden}.media-card .thumb img{width:100%;height:100%;object-fit:cover}.media-card .media-meta{padding:8px 10px}.media-card .media-name{font-size:12.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-card .media-sub{font-size:11px;color:var(--text-3);margin-top:2px}.media-card .check{position:absolute;top:6px;left:6px}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:26px;text-align:center;color:var(--text-2);background:var(--surface);margin-bottom:14px;transition:border-color .12s,background .12s}.dropzone.over{border-color:var(--primary);background:var(--primary-soft)}.field-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface);margin-top:8px}.field-row.dragging{opacity:.4}.field-row .drag-handle{cursor:-webkit-grab;cursor:grab;color:var(--text-3);font-size:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.field-row .f-name{font-weight:600;font-size:13.5px}.field-row .f-id{font-family:var(--mono);font-size:11.5px;color:var(--text-3)}.field-row .f-flags{display:flex;gap:5px}.ai-issue{border-left:3px solid var(--border-strong);padding:7px 10px;margin:8px 0;font-size:12.5px;background:var(--surface-2);border-radius:0 6px 6px 0}.ai-issue.error{border-color:var(--danger)}.ai-issue.warning{border-color:#e67e22}.ai-issue.info{border-color:#2980b9}.ai-suggestion{border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-top:6px;font-size:12.5px;cursor:pointer;background:var(--surface)}.ai-suggestion:hover{border-color:var(--primary);background:var(--primary-soft)}.provider-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);padding:3px 9px;border-radius:999px}.provider-pill .dot{width:7px;height:7px;border-radius:50%}.provider-pill .dot.on{background:var(--success)}.provider-pill .dot.off{background:var(--text-3)}.tiptap-toolbar{display:flex;gap:2px;flex-wrap:wrap;border:1px solid var(--border-strong);border-bottom:none;border-radius:6px 6px 0 0;padding:5px;background:var(--surface-2)}.tiptap-toolbar button{border:1px solid transparent;background:none;border-radius:4px;padding:3px 8px;font-size:13px;cursor:pointer;font-family:inherit;color:var(--text-2)}.tiptap-toolbar button:hover{background:var(--border);color:var(--text)}.tiptap-toolbar button.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.tiptap-toolbar .tt-divider{width:1px;background:var(--border);margin:2px 4px}.tiptap-content .ProseMirror{border:1px solid var(--border-strong);border-radius:0 0 6px 6px;padding:10px 12px;min-height:170px;background:var(--surface);font-size:14px;line-height:1.6}.tiptap-content .ProseMirror:focus{outline:2px solid rgba(79,70,229,.22)}.tiptap-content .ProseMirror p:first-child{margin-top:0}.tiptap-toolbar{align-items:center;position:relative}.tiptap-toolbar .tt-sep{width:1px;align-self:stretch;background:var(--border);margin:2px 4px}.tiptap-toolbar .tt-hint{margin-left:auto;padding:0 4px}.tiptap-toolbar .tt-hint kbd{background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:0 4px;font-family:var(--mono,monospace);font-size:11px}.tt-select{border:1px solid transparent;background:none;border-radius:4px;padding:3px 4px;font-size:12.5px;cursor:pointer;color:var(--text-2);font-family:inherit}.tt-select:hover{background:var(--border);color:var(--text)}.tt-menu-wrap{position:relative;display:inline-flex}.tt-popover{position:absolute;top:100%;left:0;z-index:40;margin-top:4px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow-lg,0 12px 32px rgba(16,24,40,.16));padding:6px;min-width:160px;display:flex;flex-direction:column;gap:2px}.tt-popover button{text-align:left;border:none;background:none;border-radius:5px;padding:6px 10px;font-size:13px;cursor:pointer;color:var(--text);font-family:inherit}.tt-popover button:hover{background:var(--surface-2)}.swatch-popover{min-width:190px}.swatch-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:5px;gap:5px}.swatch-grid .swatch{width:26px;height:26px;border-radius:5px;border:1px solid rgba(0,0,0,.12);cursor:pointer;padding:0}.swatch-grid .swatch.active{outline:2px solid var(--primary);outline-offset:1px}.btn.ghost.tiny,.btn.tiny{padding:3px 8px;font-size:12px}.tiptap-content .ProseMirror table{border-collapse:collapse;margin:10px 0;width:100%;table-layout:fixed;overflow:hidden}.tiptap-content .ProseMirror td,.tiptap-content .ProseMirror th{border:1px solid var(--border-strong);padding:6px 9px;vertical-align:top;position:relative}.tiptap-content .ProseMirror th{background:var(--surface-2);font-weight:600}.tiptap-content .ProseMirror .selectedCell:after{content:"";position:absolute;inset:0;background:var(--primary-soft);pointer-events:none}.tiptap-content .ProseMirror mark{border-radius:2px;padding:0 1px}.tiptap-content .ProseMirror a{color:var(--primary)}.tiptap-content .ProseMirror .cms-linked{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:default}.tiptap-content .ProseMirror pre{background:var(--chrome,#0f172a);color:#e2e8f0;border-radius:8px;padding:10px 12px;overflow-x:auto}.embed-block{display:flex;align-items:center;gap:12px;margin:10px 0;border:1px solid var(--border-strong);border-radius:8px;padding:10px 12px;background:var(--surface-2)}.embed-block.missing,.embed-inline.missing{border-color:var(--danger)}.embed-block-icon{width:46px;height:46px;border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--primary);overflow:hidden}.embed-block-icon img{width:100%;height:100%;object-fit:cover}.embed-block-body{flex:1 1;min-width:0}.embed-block-title{font-weight:600;font-size:13.5px}.embed-actions{display:inline-flex;gap:2px;align-items:center}.embed-actions .icon-btn{border:none;background:none;cursor:pointer;color:var(--text-3);padding:3px;border-radius:4px}.embed-actions .icon-btn:hover{background:var(--border);color:var(--text)}.embed-inline{display:inline-flex;align-items:center;gap:4px;vertical-align:baseline;background:var(--primary-soft);color:var(--primary);border-radius:5px;padding:0 6px;font-size:.9em;white-space:nowrap}.embed-inline .embed-actions{margin-left:2px}.slash-menu{position:absolute;z-index:200;min-width:230px;max-height:300px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 12px 32px rgba(16,24,40,.18);padding:5px}.slash-item{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;border:none;background:none;border-radius:6px;padding:6px 10px;cursor:pointer;font-family:inherit}.slash-item.active,.slash-item:hover{background:var(--primary-soft)}.slash-item .slash-title{font-size:13.5px;font-weight:600;color:var(--text)}.slash-item .slash-hint{font-size:11.5px;color:var(--text-3)}.slash-empty{padding:8px 10px;color:var(--text-3);font-size:13px}.muted{color:var(--text-2);font-size:13px}.mono,.small{font-size:12px}.mono{font-family:var(--mono)}.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}.spacer{flex:1 1}.mt0{margin-top:0}.stack>*+*{margin-top:10px}.empty-state{text-align:center;padding:48px 20px;color:var(--text-2);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius)}.empty-state .big{font-size:30px;margin-bottom:8px}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:6px}@keyframes shimmer{to{background-position:-200% 0}}.toast-wrap{position:fixed;bottom:18px;right:18px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{background:var(--chrome);color:#fff;border-radius:8px;padding:10px 16px;font-size:13px;box-shadow:var(--shadow-lg);animation:modal-in .15s ease-out;max-width:380px}.toast.error{background:var(--danger)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--chrome)}.login-card{background:var(--surface);border-radius:14px;padding:34px 34px 28px;width:380px;box-shadow:var(--shadow-lg)}.pagination{gap:10px;margin-top:14px;justify-content:flex-end}.pagination,.token-reveal{display:flex;align-items:center}.token-reveal{gap:8px;background:var(--warning-soft);border:1px solid #fbbf24;padding:10px 12px;border-radius:8px;margin-top:10px}.token-reveal code{background:transparent;border:none;word-break:break-all;font-size:12px;flex:1 1}