.prov-buttons { display: flex; flex-direction: row; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }

.prov-buttons:empty { display: none; margin-bottom: 0; }

.prov-buttons-secondary { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin-top: 16px; }

.prov-buttons-secondary:empty { display: none; margin-top: 0; }

.diff-view { max-height: 40vh; overflow-y: auto; border: 1px solid var(--border-default-color); border-radius: 4px; margin-bottom: 12px; font-size: var(--font-size-sm, 0.875rem); }

.diff-info { padding: 10px 12px; color: var(--icon-static-color); font-style: italic; }

.diff-section { border-bottom: 1px solid var(--border-default-color); padding: 8px 12px; }

.diff-section:last-child { border-bottom: none; }

.diff-section h4 { margin: 0 0 6px; font-weight: 600; font-size: var(--font-size-sm, 0.875rem); }

.diff-added { color: var(--success); margin: 2px 0; }

.diff-removed { color: var(--error); margin: 2px 0; }

.diff-tpl, .diff-set-change { margin: 6px 0; }

.diff-dsl { margin: 4px 0 8px; padding: 6px 8px; background: var(--table-alternation-bg); border-radius: 3px; font-size: 0.75rem; overflow-x: auto; }

.diff-dsl .diff-line { display: block; padding: 0 2px; }

.diff-dsl .diff-line.diff-add { background: rgba(16, 185, 129, 0.12); color: var(--success); }

.diff-dsl .diff-line.diff-del { background: rgba(239, 68, 68, 0.1); color: var(--error); }

.diff-table { width: 100%; border-collapse: collapse; margin-top: 4px; font-size: var(--font-size-sm, 0.875rem); }

.diff-table th { text-align: left; padding: 3px 8px; border-bottom: 1px solid var(--border-default-color); font-weight: 600; color: var(--icon-static-color); }

.diff-table td { padding: 3px 8px; border-bottom: 1px solid var(--border-default-color); vertical-align: top; }

.diff-table .diff-old { color: var(--error); text-decoration: line-through; }

.diff-table .diff-new { color: var(--success); }

[data-gw="Provisioning.GlobalSettings"] > .admin-body > .body, [data-gw="Provisioning.ServerSettings"] > .admin-body > .body, [data-gw="Provisioning.PublicationLog"] > .admin-body > .body { overflow: auto; padding: var(--body-padding); background: var(--panel-bg); }

[data-gw="Provisioning.AccessLog"] > .admin-body > .body { display: flex; flex-direction: column; min-height: 0; padding: var(--body-padding); background: var(--panel-bg); }

[data-gw="Provisioning.AccessLog"] > .admin-body > .body > .access-log-screen { display: flex; flex-direction: column; flex: 1; min-height: 0; }

[data-gw="Provisioning.AccessLog"] > .admin-body > .body > .access-log-screen > .smart-table { min-height: 0; }

.access-outcome { font-weight: 600; }

.access-outcome-served { color: var(--success); }

.access-outcome-denied, .access-outcome-invalid_secret, .access-outcome-disabled { color: var(--warning); }

.access-outcome-not_found { color: var(--icon-static-color); }

.access-outcome-error { color: var(--error); }

.global-settings-form { max-width: 600px; }

.builtin-badge { display: inline-block; font-size: var(--font-size-xs, 0.75rem); padding: 1px 6px; border-radius: 99px; background: var(--table-alternation-bg); color: var(--icon-static-color); }

.dsl-editor-dialog > .admin-dialog { width: 80vw; max-width: 80vw; height: 80vh; max-height: 80vh; overflow: hidden; display: flex; flex-direction: column; }

.dsl-editor-dialog > .admin-dialog > .body { flex: 1; overflow: hidden; display: flex; flex-direction: column; min-height: 0; }

.dsl-editor-dialog > .admin-dialog > .body > div { display: flex; flex-direction: column; flex: 1; min-height: 0; }

.dsl-editor-dialog .form-buttons { flex-shrink: 0; }

.dsl-editor-dialog .dsl-editor-field { flex: 1; display: flex; flex-direction: column; min-height: 0; position: relative; }

.dsl-editor-dialog .dsl-editor-field > label { flex-shrink: 0; }

.dsl-editor-dialog .dsl-editor-field .dsl-editor-wrap { flex: 1; position: relative; min-height: 0; overflow: hidden; }

.admin-dialog-mask.dsl-editor-dialog > .admin-dialog > .body .form-buttons:last-child { margin-right: 0; margin-bottom: 0; }

.dsl-editor-wrap { position: relative; width: 100%; min-height: 400px; }

.dsl-editor-pre { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; margin: 0; padding: 8px 10px; font-family: monospace; font-size: 13px; line-height: 1.6; white-space: pre; word-break: break-all; tab-size: 4; border: 1px solid var(--border-default-color); border-radius: 4px; background: var(--panel-bg); overflow: auto; box-sizing: border-box; color: var(--body-fg); pointer-events: none; z-index: 0; }

.dsl-editor-pre.readonly { background: var(--table-alternation-bg); pointer-events: auto; }

.dsl-editor-textarea { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; margin: 0; padding: 8px 10px; font-family: monospace; font-size: 13px; line-height: 1.6; white-space: pre; word-break: break-all; tab-size: 4; border: 1px solid var(--border-default-color); border-radius: 4px; background: transparent; overflow: auto; box-sizing: border-box; color: transparent; caret-color: var(--body-fg); resize: none; outline: none; z-index: 1; }

.dsl-editor-textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 2px var(--primary-light, rgba(59, 130, 246, 0.15)); padding: 8px 10px; }

.dsl-kw { color: var(--syntax-kw, #7c3aed); font-weight: 600; }

.dsl-str { color: var(--syntax-str, #15803d); }

.dsl-cmt { color: var(--syntax-cmt, #6b7280); font-style: italic; }

.dsl-tpl { color: var(--syntax-tpl, #b45309); font-weight: 500; }

.dsl-err-line { background: rgba(239, 68, 68, 0.12); display: inline; }

.dsl-err { background: rgba(239, 68, 68, 0.3); text-decoration: underline wavy #ef4444; border-radius: 2px; }

.dsl-err-tooltip { position: absolute; background: var(--error); color: #fff; padding: 5px 10px; border-radius: 4px; font-size: var(--font-size-sm, 0.875rem); max-width: 380px; white-space: pre-wrap; word-break: break-word; pointer-events: none; z-index: 100; line-height: 1.4; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); }

.dsl-err-tooltip::before { content: ''; position: absolute; top: -6px; left: var(--arrow-left, 10px); border: 3px solid transparent; border-bottom-color: var(--error); }

.param-table-dialog .admin-dialog .body .form-buttons { position: sticky; bottom: 0; background: var(--panel-bg); padding: 12px 0 4px; border-top: 1px solid var(--border-default-color); margin-top: 12px; }

.param-table-wrap { overflow-x: auto; margin: 8px 0; }

.param-table-inner { width: 100%; border-collapse: collapse; font-size: var(--font-size-sm, 0.875rem); }

.param-table-inner th { text-align: left; padding: 6px 10px; border-bottom: 2px solid var(--border-default-color); font-weight: 600; white-space: nowrap; color: var(--icon-static-color); }

.param-table-inner td { padding: 4px 10px; border-bottom: 1px solid var(--border-default-color); vertical-align: middle; }

.param-table-inner tr:hover td { background: var(--table-row-hover-bg); }

.param-table-inner tr.param-override td { background: rgba(59, 130, 246, 0.07); }

.param-table-inner tr.param-override:hover td { background: rgba(59, 130, 246, 0.13); }

.param-table-inner .param-table-empty { text-align: center; color: var(--icon-static-color); padding: 16px; }

.param-table-inner .param-default { color: var(--icon-static-color); font-style: italic; }

.param-table-inner .form-field, .array-section-table .form-field { margin-bottom: 0; }

.param-table-inner .array-group-header td { background: var(--table-alternation-bg); font-weight: 600; font-size: var(--font-size-sm, 0.875rem); padding: 6px 10px; border-top: 2px solid var(--border-default-color); }

.param-table-inner .array-item-row td:first-child { padding-left: 20px; color: var(--icon-static-color); }

.param-table-inner .array-add-row td { padding: 4px 10px; }

.param-table-inner .param-actions { width: 1px; white-space: nowrap; padding: 2px 6px; }

.param-override-none { color: var(--icon-static-color); }

.param-override-tags { display: flex; flex-wrap: wrap; gap: 3px; align-items: center; }

.param-override-tag { display: inline-block; font-size: var(--font-size-xs, 0.75rem); padding: 1px 5px; border-radius: 99px; background: rgba(59, 130, 246, 0.15); color: var(--body-fg); white-space: nowrap; }

.param-override-more { background: var(--table-alternation-bg); color: var(--icon-static-color); }

.save-set-published-badge { font-size: var(--font-size-xs, 0.75rem); padding: 2px 6px; border-radius: 99px; background: var(--primary); color: #fff; white-space: nowrap; margin-left: 8px; vertical-align: middle; }

.save-set-format-note { font-size: var(--font-size-sm); color: var(--icon-static-color); margin-bottom: 12px; }

.save-set-format-note.warning { color: var(--warning); }

.save-set-phone-list { margin-top: 20px; }

.save-set-phone-list h4 { margin: 0 0 6px; font-size: var(--font-size-sm); font-weight: 600; color: var(--primary); }

.save-set-phone-list ul { list-style: none; padding: 0; margin: 0; font-size: var(--font-size-sm); font-family: monospace; }

.save-set-phone-list .save-set-more { color: var(--icon-static-color); font-family: inherit; }

.array-section { margin: 12px 0; }

.array-section h4 { margin: 0 0 6px 0; font-size: var(--font-size-sm, 0.875rem); font-weight: 600; color: var(--icon-static-color); }

.array-section > button { margin-top: 6px; }

.array-section .array-section-table td:first-child { width: 2rem; color: var(--icon-static-color); font-size: var(--font-size-sm, 0.875rem); }

.array-section .array-section-table td:last-child { width: 1px; white-space: nowrap; }

.restore-dialog-info { margin-bottom: 12px; }

.restore-dialog-info .restore-meta { font-weight: 600; margin-bottom: 8px; }

.restore-dialog-info .restore-counts { margin: 8px 0 12px 18px; padding: 0; font-size: var(--font-size-sm, 0.875rem); }

.restore-dialog-info p { margin: 6px 0; font-size: var(--font-size-sm, 0.875rem); }

.save-set-pub-log { margin-top: 12px; }

.save-set-pub-log h4 { margin: 0 0 6px; font-size: var(--font-size-sm, 0.875rem); color: var(--icon-static-color); }

.save-set-pub-log .pub-log-list { margin: 0; padding: 0 0 0 16px; font-size: var(--font-size-sm, 0.875rem); }

.pub-log-editor.entity-list-editor { grid-template-columns: 1fr 1fr; }

.pub-log-unpublished-row { font-weight: 600; }

.pub-log-unpublished-label { color: var(--warning); }

.pub-log-table { width: 100%; border-collapse: collapse; font-size: var(--font-size-sm, 0.875rem); }

.pub-log-table th { text-align: left; padding: 6px 12px; border-bottom: 2px solid var(--border-default-color); font-weight: 600; color: var(--icon-static-color); }

.pub-log-table td { padding: 6px 12px; border-bottom: 1px solid var(--border-default-color); vertical-align: middle; }

.pub-log-table tr:hover td { background: var(--table-row-hover-bg); }

.fetch-history-section { margin-top: 12px; border-top: 1px solid var(--border-default-color); padding-top: 10px; }

.fetch-history-heading { margin: 0 0 6px; font-size: var(--font-size-sm, 0.875rem); font-weight: 600; color: var(--icon-static-color); }

.fetch-history-list { max-height: 240px; overflow-y: auto; }

.fetch-time-entry { font-size: var(--font-size-xs, 0.75rem); white-space: nowrap; line-height: 1.7; color: var(--icon-static-color); }

.test-mode-phones-notice { color: var(--warning); margin-top: 16px; margin-bottom: 6px; font-weight: 600; }

.phone-test-mode { background: rgba(251, 191, 36, 0.12) !important; }

.test-mode-badge { display: inline-block; font-size: var(--font-size-xs, 0.75rem); padding: 1px 6px; border-radius: 99px; background: #b45309; color: #fff; }

.server-settings-form { max-width: 600px; }

.server-settings-form h3 { margin: 20px 0 4px; font-size: var(--font-size-base, 1rem); font-weight: 700; color: var(--primary); border-bottom: 2px solid var(--primary); padding-bottom: 4px; }

.server-settings-form h3:first-child { margin-top: 0; }

.server-settings-form .form-hint { font-size: var(--font-size-xs, 0.75rem); color: var(--icon-static-color); margin: 0 0 4px; }

.server-settings-form .http-secret-row { display: flex; align-items: flex-end; gap: 8px; }

.server-settings-form .http-secret-row > .form-field { flex: 1; min-width: 0; margin-bottom: 0; }

.server-settings-form .http-url-display { display: flex; align-items: center; gap: 8px; margin-top: 6px; padding: 6px 10px; background: var(--table-alternation-bg); border-radius: 4px; border: 1px solid var(--border-default-color); }

.server-settings-form .http-url-display .http-url-text { flex: 1; font-family: monospace; font-size: var(--font-size-sm, 0.875rem); word-break: break-all; }

.server-settings-form .http-url-display .http-url-text.muted { font-family: inherit; font-size: var(--font-size-xs, 0.75rem); color: var(--icon-static-color); font-style: italic; }

.server-settings-form button.primary { margin-top: 8px; }

.server-settings-form .whitelist-row { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }

.server-settings-form .whitelist-row .whitelist-input { flex: 1; min-width: 0; }

.server-settings-form .whitelist-row .whitelist-input.input-error { border-color: var(--error); outline: 1px solid var(--error); }

.server-settings-form .whitelist-add-row { margin-top: 4px; }

.provisioning-preview-dialog > .admin-dialog { width: 90vw; max-width: 1200px; height: calc(100vh - 80px); overflow: hidden; display: flex; flex-direction: column; }

.provisioning-preview-dialog > .admin-dialog > .body { flex: 1; overflow: auto; padding: 0; }

.provisioning-preview-dialog .preview-pre { display: block; width: 100%; height: 100%; margin: 0; padding: 16px 20px; font-family: monospace; font-size: 13px; line-height: 1.5; white-space: pre; color: var(--body-fg); background: var(--panel-bg); outline: none; resize: none; box-sizing: border-box; cursor: default !important; border-width: 2px; border-radius: 0; }

.provisioning-preview-dialog .preview-pre:focus { box-shadow: none; }

@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .dsl-kw { color: #a78bfa; } :root:not([data-theme="light"]) .dsl-str { color: #3bd17e; } :root:not([data-theme="light"]) .dsl-cmt { color: #a3a9b6; } :root:not([data-theme="light"]) .dsl-tpl { color: #ffa17d; } }

:root[data-theme="dark"] .dsl-kw { color: #a78bfa; }

:root[data-theme="dark"] .dsl-str { color: #3bd17e; }

:root[data-theme="dark"] .dsl-cmt { color: #a3a9b6; }

:root[data-theme="dark"] .dsl-tpl { color: #ffa17d; }

/*# sourceMappingURL=style.css.map */