.page-editor { max-width: 1060px; margin: 0 auto; padding: 32px 20px; }
.service-prose .rt-align-left { text-align:left; }
.service-prose .rt-align-center { text-align:center; }
.service-prose .rt-align-right { text-align:right; }
.service-prose .rt-highlight-yellow { background-color:#fff2a8; }
.service-prose .rt-highlight-green { background-color:#cef0c8; }
.service-prose .rt-highlight-pink { background-color:#ffd6e4; }
.service-prose .rt-highlight-none { background-color:transparent; }
.editor-dialog { width:min(480px,calc(100vw - 40px)); max-height:80vh; overflow:auto; box-sizing:border-box; padding:24px; border:1px solid #bac9bd; border-radius:12px; color:#17252b; background:white; }
.editor-dialog::backdrop { background:rgb(20 35 27 / 45%); }
.editor-dialog label { display:block; margin:12px 0; }
.editor-dialog input[type=text] { display:block; box-sizing:border-box; width:100%; margin-top:6px; }
.admin-form .editor-publication-confirmation { display:flex; align-items:flex-start; gap:9px; }
.editor-publication-confirmation input[type=checkbox] { flex:0 0 auto; width:16px; height:16px; margin:2px 0 0; accent-color:var(--admin-green); }
.editor-publication-confirmation span { min-width:0; line-height:1.5; }
.editor-dialog input[type=checkbox] { width:auto; margin-right:8px; }
.editor-dialog button { margin:4px; }
.editor-dialog :focus-visible { outline:3px solid #386c46; outline-offset:2px; }
.editor-advanced select { max-width:100%; padding:8px; border:1px solid #bac9bd; border-radius:6px; background:white; color:#284436; }
.editor-toolbar,.editor-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.editor-toolbar { border: 1px solid #bac9bd; padding: 8px; border-radius: 10px 10px 0 0; background: #f3f6f4; align-items: center; gap: 6px; }
.editor-tool-group { display: flex; align-items: center; gap: 3px; padding-right: 7px; border-right: 1px solid #cdd8cf; }
.editor-tool-group:last-child { border-right: 0; padding-right: 0; }
.editor-toolbar .editor-icon-button { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; min-width: 38px; padding: 8px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #284436; cursor: pointer; }
.editor-icon-button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.editor-toolbar .editor-icon-button:hover { background: #e3ece5; border-color: #c5d4c8; }
.editor-toolbar .editor-icon-button[aria-pressed="true"] { background: #d7e8ce; color: #254c15; border-color: #83a76f; }
.editor-toolbar .editor-style { width: 153px; min-height: 38px; margin: 0; padding: 7px 28px 7px 10px; border: 1px solid #c5d4c8; border-radius: 6px; background-color: #fff; color: #284436; font: inherit; font-size: 14px; cursor: pointer; }
.editor-frame { min-width: 0; }
.editor-color-panel { display:flex; flex-wrap:wrap; gap:12px; padding:16px; border:1px solid #bac9bd; border-top:0; background:#fff; }
.editor-color-panel[hidden] { display:none; }
.editor-color-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.editor-palette-column { display:flex; flex-wrap:wrap; align-content:start; gap:8px; min-width:0; }
.editor-palette-column + .editor-palette-column { border-left:1px solid #dce5df; padding-left:16px; }
.editor-palette-column h3 { flex-basis:100%; margin:0 0 4px; font-size:14px; }
.admin-form .editor-palette-column input { box-sizing:border-box; max-width:100%; }
.admin-form .editor-palette-column input[type=color] { width:54px; }
.admin-form .editor-palette-column input[type=text] { width:88px; }
.admin-form .editor-palette-column input[type=number] { width:76px; }
.admin-form .editor-palette-column input[type=range] { width:100px; }
.admin-form .editor-palette-column .editor-color-field input[type=color] { width:54px; }
.admin-form .editor-palette-column .editor-color-field input[type=text] { width:88px; }
.admin-form .editor-palette-column .editor-color-field input[type=number] { width:76px; }
.admin-form .editor-palette-column .editor-color-field input[type=range] { width:100px; }
.editor-palette-column .editor-color-sample { box-sizing:border-box; font-size:18px; }
@media(max-width:800px) { .editor-color-panel { grid-template-columns:minmax(0,1fr); }.editor-palette-column + .editor-palette-column { border-left:0; padding-left:0; border-top:1px solid #dce5df; padding-top:16px; } }
.editor-color-field { display:flex!important; flex-direction:column; gap:6px; font-size:12px; }
.admin-form .editor-color-field input { width:82px; height:38px; padding:6px 8px; }
.admin-form .editor-color-field input[type="color"] { width:72px; padding:3px; cursor:pointer; }
.admin-form .editor-color-field input[type="text"] { width:110px; }
.admin-form .editor-color-field input[type="range"] { width:150px; padding:0; }
.editor-color-sample { width:100%; margin:0; padding:14px; border:1px solid #dce5df; background:white; border-radius:6px; font-size:22px; }
.editor-contrast { flex-basis:100%; margin:0; padding:10px; border-radius:6px; color:#285d25; background:#eef7ec; font-size:13px; }
.editor-contrast--warning { background:#fff3dc; color:#70410a; }
.editor-recent { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:12px; }
.editor-statusbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px; border:1px solid #bac9bd; border-top:0; background:#f3f6f4; border-radius:0 0 8px 8px; font-size:12px; }
.editor-statusbar button:focus-visible,.editor-color-panel button:focus-visible { outline:3px solid #386c46; outline-offset:2px; }
.editor-focus-open { overflow:hidden; }
.editor-frame--focus { position:fixed; inset:12px; z-index:10000; background:white; display:flex; flex-direction:column; overflow:auto; box-shadow:0 0 0 20px #edf2ee; border-radius:10px; }
.editor-frame--focus > * { flex-shrink:0; }
.editor-frame--focus .rich-editor { flex:1 1 auto; min-height:180px; max-height:none; }
.editor-frame--focus .editor-color-panel { max-height:40vh; overflow:auto; }
@media(max-width:480px) { .editor-frame--focus { inset:4px; }.editor-color-panel { padding:10px; gap:8px; } }

.editor-advanced { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:12px; border:1px solid #bac9bd; border-top:0; background:#f7faf7; }
.editor-advanced[hidden] { display:none; }
.editor-mode,.editor-apply { padding:8px 10px; border:1px solid #bac9bd; border-radius:6px; background:#fff; color:#284436; cursor:pointer; font:inherit; font-size:13px; }
.editor-mode { margin-left:auto; }
.editor-advanced .editor-icon-button { width:38px; height:38px; padding:8px; border:1px solid #bac9bd; border-radius:6px; background:#fff; }
.editor-advanced .editor-icon-button[aria-pressed="true"] { background:#d7e8ce; }
.editor-control-label { display:flex!important; align-items:center; gap:8px; }
.admin-form .editor-control-label input { width:72px!important; height:36px!important; padding:5px 8px!important; }
.editor-colors { display:flex; flex-wrap:wrap; gap:4px; }
.editor-swatch { width:32px; height:34px; background:white; border:1px solid #bac9bd; border-radius:5px; font-weight:700; font-size:20px; cursor:pointer; text-decoration:underline; text-decoration-thickness:3px; }
.editor-format-hint { flex-basis:100%; margin:0; font-size:12px; color:#415748; }
.editor-advanced button:focus-visible,.editor-mode:focus-visible { outline:3px solid #386c46; outline-offset:2px; }
.service-prose .rt-size-12 { font-size:0.75rem; }
.service-prose .rt-size-13 { font-size:0.8125rem; }
.service-prose .rt-size-14 { font-size:0.875rem; }
.service-prose .rt-size-15 { font-size:0.9375rem; }
.service-prose .rt-size-16 { font-size:1rem; }
.service-prose .rt-size-17 { font-size:1.0625rem; }
.service-prose .rt-size-18 { font-size:1.125rem; }
.service-prose .rt-size-19 { font-size:1.1875rem; }
.service-prose .rt-size-20 { font-size:1.25rem; }
.service-prose .rt-size-21 { font-size:1.3125rem; }
.service-prose .rt-size-22 { font-size:1.375rem; }
.service-prose .rt-size-23 { font-size:1.4375rem; }
.service-prose .rt-size-24 { font-size:1.5rem; }
.service-prose .rt-size-25 { font-size:1.5625rem; }
.service-prose .rt-size-26 { font-size:1.625rem; }
.service-prose .rt-size-27 { font-size:1.6875rem; }
.service-prose .rt-size-28 { font-size:1.75rem; }
.service-prose .rt-size-29 { font-size:1.8125rem; }
.service-prose .rt-size-30 { font-size:1.875rem; }
.service-prose .rt-size-31 { font-size:1.9375rem; }
.service-prose .rt-size-32 { font-size:2rem; }
.service-prose .rt-size-33 { font-size:2.0625rem; }
.service-prose .rt-size-34 { font-size:2.125rem; }
.service-prose .rt-size-35 { font-size:2.1875rem; }
.service-prose .rt-size-36 { font-size:2.25rem; }
.service-prose .rt-size-37 { font-size:2.3125rem; }
.service-prose .rt-size-38 { font-size:2.375rem; }
.service-prose .rt-size-39 { font-size:2.4375rem; }
.service-prose .rt-size-40 { font-size:2.5rem; }
.service-prose .rt-size-41 { font-size:2.5625rem; }
.service-prose .rt-size-42 { font-size:2.625rem; }
.service-prose .rt-size-43 { font-size:2.6875rem; }
.service-prose .rt-size-44 { font-size:2.75rem; }
.service-prose .rt-size-45 { font-size:2.8125rem; }
.service-prose .rt-size-46 { font-size:2.875rem; }
.service-prose .rt-size-47 { font-size:2.9375rem; }
.service-prose .rt-size-48 { font-size:3rem; }
.rt-color-ink { color:#17252b; }
.rt-color-green { color:#38651f; }
.rt-color-blue { color:#1557a0; }
.rt-color-red { color:#ad2727; }
.rt-color-purple { color:#753895; }
.rt-color-brown { color:#80502d; }
.rt-color-gray { color:#59636b; }
.rt-color-teal { color:#136c6c; }
.editor-frame .rich-editor { margin-top: -1px; }
.editor-style:focus-visible { outline: 3px solid #386c46; outline-offset: 2px; }
.rich-editor { min-height: 320px; max-height: 700px; overflow: auto; padding: 20px; background: #fff; border: 1px solid #bac9bd; border-radius: 0 0 8px 8px; }
.rich-editor:focus { outline: 3px solid #386c46; outline-offset: 2px; }
.rich-editor.editor-pointer-focus:focus { outline:none; }
.service-prose { line-height: 1.75; overflow-wrap: anywhere; }
.service-prose h2,.service-prose h3 { line-height: 1.3; margin: 1.3em 0 .6em; }
.service-prose p { margin: 0 0 1em; }
.service-prose ul,.service-prose ol { padding-left: 1.6em; margin: 1em 0; }
.service-prose ul { list-style: disc; }.service-prose ol { list-style: decimal; }
.service-prose a { color: #245736; text-decoration: underline; }
.editor-toolbar button:focus-visible,.editor-actions button:focus-visible { outline: 3px solid #386c46; outline-offset: 2px; }
.service-layout { max-width: 900px; margin: 0 auto; padding: 48px 24px; }
.service-layout h1 { font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.15; }
.service-layout .service-prose { margin: 32px 0; }
.service-layout .service-price { display: block; margin: 20px 0; }
.service-page-nav { display:flex; flex-wrap:wrap; gap:20px; padding:20px 24px; align-items:center; border-bottom:1px solid #dce5df; }
@media(max-width: 480px) { .page-editor { padding: 20px 12px; }.rich-editor { padding:12px; }.editor-actions > button { width:100%; } }
