pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{font-family:Public Sans,IBM Plex Sans,Segoe UI,sans-serif;color:#0f172a;background:radial-gradient(circle at 4% 0%,#ecfeff,#f7fafc 42%,#f8fafc);--ink-900: #0f172a;--ink-700: #334155;--ink-500: #64748b;--line: #dbe5ef;--card: #ffffff;--brand: rgb(13, 148, 136);--brand-deep: #0f766e;--soft: #f8fafc;--bg-main: #f4f7fb;--surface-raised: #ffffff;--surface-muted: #f8fafc;--shadow-soft: 0 14px 34px rgba(15, 23, 42, .07);--danger-bg: #fef2f2;--danger-line: #fecaca;--danger-ink: #b91c1c}*{box-sizing:border-box}body{margin:0;color:var(--ink-900);background:var(--bg-main);overflow:hidden}.page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{width:100%;max-width:430px;padding:30px;border-radius:14px;border:1px solid var(--line);background:var(--surface-raised);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:14px}.card input{height:42px}.card button{height:42px;font-size:.9rem}h1{margin:0;font-size:1.5rem}p{margin:0 0 8px;color:var(--ink-700)}label{font-size:.9rem;color:var(--ink-900)}input,select{width:100%;height:36px;border-radius:8px;border:1px solid var(--line);padding:0 12px;font-size:.88rem;color:var(--ink-900);background:#fff}textarea{width:100%;border-radius:10px;border:1px solid #cbd5e1;padding:10px 13px;font-size:.95rem;color:var(--ink-900);background:#fff;resize:vertical;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:#0d948873;box-shadow:0 0 0 3px #0d94881f}button{height:36px;border-radius:8px;border:1px solid transparent;background:var(--brand);color:#fff;font-size:.82rem;font-weight:600;padding:0 16px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;letter-spacing:.01em;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}button:hover:not(:disabled){background:var(--brand-deep);border-color:var(--brand-deep);box-shadow:0 1px 3px #0d948840}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:#fff;color:var(--ink-700);border-color:var(--line);box-shadow:0 1px 2px #0f172a0d}button.secondary:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8;color:var(--ink-900);box-shadow:0 1px 3px #0f172a14}button.danger{background:#fff;color:#dc2626;border-color:#fecaca;box-shadow:0 1px 2px #dc26260f}button.danger:hover:not(:disabled){background:#fef2f2;border-color:#f87171;color:#b91c1c;box-shadow:0 1px 3px #dc26261f}button.ghost{background:transparent;color:var(--ink-700);border-color:transparent;font-weight:500;box-shadow:none}button.ghost:hover:not(:disabled){background:#f1f5f9;border-color:transparent;color:var(--ink-900);box-shadow:none}button.ghost.danger{color:#dc2626}button.ghost.danger:hover:not(:disabled){background:#fef2f2;color:#b91c1c}button.btn-sm,.row-actions button.btn-sm{height:28px;padding:0 10px;font-size:.75rem;border-radius:6px}.error{border:1px solid var(--danger-line);background:var(--danger-bg);color:var(--danger-ink);border-radius:10px;padding:10px 12px;font-size:.9rem}.meta{margin:8px 0 16px;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;padding:10px 0;display:grid;gap:8px}.meta div{display:flex;justify-content:space-between;gap:12px}.meta span{color:var(--ink-500)}.dashboard-eyebrow{display:none}.dashboard-subtitle{color:var(--ink-500);margin:0;font-size:.84rem}.erp-layout{height:100vh;display:grid;grid-template-columns:280px 1fr;gap:0;background:linear-gradient(122deg,#f8fafc,#f1f5f9 45%,#f8fafc);overflow:hidden}.erp-sidebar{border-right:1px solid var(--line);background:#fff;color:var(--ink-700);padding:20px 14px;display:flex;flex-direction:column;gap:16px;height:100vh;overflow:hidden}.erp-brand{padding:12px 10px;display:flex;align-items:center;gap:10px}.erp-brand-eyebrow{margin:0;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.erp-brand h1{margin:2px 0 0;font-size:1.22rem;color:var(--ink-900)}.erp-nav{display:grid;gap:7px;overflow-y:auto;padding-right:4px;min-height:0}.erp-nav-group{display:grid;gap:7px}.erp-nav-item{height:auto;text-align:left;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink-700);padding:10px;display:grid;gap:3px}.erp-nav-item span{font-size:.92rem;font-weight:650}.erp-nav-item-label{display:flex;align-items:center;justify-content:space-between;gap:10px}.erp-nav-expand-icon{opacity:.8;transition:transform .18s ease}.erp-nav-expand-icon.open{transform:rotate(180deg)}.erp-nav-item small{font-size:.78rem;color:#94a3b8}.erp-nav-item:hover:not(:disabled){background:#f8fafc;border-color:#e2e8f0;transform:none}.erp-nav-item.active{border-color:#0d948852;background:#0d94881a;color:#0f766e}.erp-nav-item.active small{color:#0f766e}.erp-subnav{display:grid;gap:6px;margin:-2px 0 4px;padding-left:10px;border-left:1px solid #dbe5ef}.erp-subnav-item{height:34px;text-align:left;border-radius:8px;border:1px solid #edf2f7;background:#fff;color:var(--ink-700);font-size:.82rem;font-weight:600;padding:0 10px}.erp-subnav-item:hover:not(:disabled){background:#f8fafc;border-color:#dbe5ef;transform:none}.erp-subnav-item.active{border-color:#0d948852;background:#0d94881a;color:#0f766e}.erp-sidebar-footer{margin-top:auto;display:grid;gap:10px}.erp-user-chip{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;gap:3px;background:var(--surface-muted)}.erp-user-chip strong{font-size:.9rem;color:var(--ink-900)}.erp-user-chip span{font-size:.78rem;color:var(--ink-500);text-transform:capitalize}.erp-sidebar-footer .secondary{background:#f8fafc;border:1px solid #cbd5e1;color:var(--ink-700)}.erp-sidebar-footer .secondary:hover:not(:disabled){background:#eef2f7;border-color:#94a3b8;color:var(--ink-900)}.erp-main{padding:20px;display:grid;gap:14px;align-content:start;overflow-y:auto;min-height:0}.erp-main-header{border-bottom:1px solid var(--line);background:var(--card);padding:14px 20px;margin:-20px -20px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.erp-main-header h2{margin:0;font-size:1.15rem;font-weight:700;color:var(--ink-900)}.erp-main-header-right{display:flex;align-items:center;gap:10px}.erp-main-header-actions{display:flex;gap:8px;align-items:center}.erp-header-pill{color:var(--ink-500);font-size:.78rem;font-weight:500;white-space:nowrap}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.stat-card{border:none;border-radius:12px;background:linear-gradient(135deg,#0a6b63,#0d9488,#14b8a6);padding:20px 22px;display:grid;gap:4px;box-shadow:0 4px 14px #0d948840,0 1px 3px #0d948826;color:#fff}.stat-card p{margin:0;color:#ffffffbf;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.stat-card h2{margin:2px 0 0;font-size:1.8rem;font-weight:700;color:#fff;line-height:1.1;font-variant-numeric:tabular-nums}.stat-card span{color:#ffffffb3;font-size:.78rem;font-weight:500}.stat-card span.status-good,.stat-card span.status-warn,.stat-card span.status-bad{color:#fffc;background:none;border:none;padding:0}.dashboard-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.panel{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:20px;box-shadow:0 2px 8px #0f172a0a}.panel h3{margin:0 0 14px;font-size:.92rem;font-weight:700;color:var(--ink-900);text-transform:uppercase;letter-spacing:.04em}.panel-subtitle{margin:0;color:var(--ink-500);font-size:.88rem}.panel-wide{grid-column:1 / -1}.service-detail-panel{padding:14px}.module-grid{display:grid;gap:12px}.env-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.env-tab{height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink-700);font-size:.82rem;font-weight:650}.env-tab:hover:not(:disabled){background:#f8fafc;transform:none}.env-tab.active{border-color:#0d948859;background:#0d94881c;color:#0f766e}.env-tab-content{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.env-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px}.env-summary-card{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface-muted);display:grid;gap:2px}.env-summary-card span{font-size:.78rem;color:var(--ink-500)}.env-summary-card strong{font-size:1.05rem;color:var(--ink-900)}.env-help{margin:-8px 0 12px;font-size:.83rem;color:var(--ink-500)}.env-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto auto auto;align-items:center;gap:8px;margin:0 0 8px}.route-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 140px 140px;gap:8px;align-items:center;margin:10px 0 8px}.env-toolbar input{max-width:none}.env-toolbar-service{grid-template-columns:190px minmax(220px,1fr) auto auto auto}.env-toolbar-compact button{height:32px;border-radius:7px;font-size:.78rem;padding:0 12px}.env-tab-content .ops-table{min-width:680px}.env-tab-content .ops-table th,.env-tab-content .ops-table td{padding:8px 7px;font-size:.82rem}.env-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.env-modal-grid label{display:grid;gap:5px}.env-count{font-size:.79rem;color:var(--ink-500);white-space:nowrap}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;font-size:.85rem;color:var(--ink-500)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.panel-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 150px;gap:8px}.toolbar-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar-inline input,.toolbar-inline select{min-width:220px}.table-wrap{width:100%;overflow-x:auto}.ops-table{width:100%;border-collapse:collapse;min-width:980px}.ops-table th,.ops-table td{text-align:left;border-bottom:1px solid var(--line);padding:11px 8px;vertical-align:top;font-size:.87rem}.ops-table th{color:var(--ink-500);font-weight:600;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #d4dde7;position:sticky;top:0;z-index:1}.routes-table-compact{min-width:1200px}.routes-table-compact th,.routes-table-compact td{padding:8px 7px;font-size:.82rem}.route-pagination{margin-top:10px;display:flex;align-items:center;justify-content:flex-end;gap:10px}.route-pagination span{font-size:.82rem;color:var(--ink-500)}.route-playground-modal{max-width:1100px}.route-playground-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}.route-playground-column{display:grid;gap:10px}.route-playground-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.route-playground-fields label,.route-playground-json{display:grid;gap:4px}.route-playground-fields textarea,.route-playground-json textarea{min-height:80px}.route-playground-response{margin:0;padding:10px;border-radius:8px;border:1px solid var(--line);background:#f8fafc;max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.78rem}.hljs-shell{padding:0;background:#0f172a}.hljs-shell code{display:block;padding:10px;background:transparent;white-space:pre-wrap;word-break:break-word}.api-playground-layout{display:grid;grid-template-columns:minmax(340px,.9fr) minmax(760px,1.5fr);gap:12px}.api-playground-panel{display:grid;gap:10px;align-content:start;border:1px solid var(--line);border-radius:10px;padding:12px;background:#fbfcfe}.api-playground-routes-panel{max-height:calc(100vh - 210px)}.api-playground-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.api-route-list{display:grid;gap:8px;overflow:auto;padding-right:2px}.api-route-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;align-content:start;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px;height:auto;min-height:74px;white-space:normal;line-height:1.35;color:var(--ink-900);overflow:visible;transition:border-color .2s ease,background .2s ease}.api-route-item:hover:not(:disabled){transform:none;background:#f8fafc;border-color:#dbe5ef}.api-route-item small{grid-column:1 / -1;color:var(--ink-500);font-size:.75rem;white-space:normal}.api-route-item.active{border-color:#93c5fd;background:#eff6ff}.api-route-path{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem}.api-playground-request-line{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px}.api-playground-section{display:grid;gap:6px}.api-playground-main{display:grid;grid-template-rows:minmax(420px,50%) 1fr;min-height:calc(100vh - 210px);gap:8px}.api-playground-request-panel,.api-playground-response-panel{overflow-y:auto;overflow-x:hidden}.api-playground-request-panel{gap:6px}.api-playground-draft-list{display:grid;gap:6px}.api-playground-draft-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(220px,1.2fr) auto auto;gap:6px;align-items:center}.api-playground-draft-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-700)}.api-playground-preview{max-height:220px}.api-playground-response-body{min-height:280px;flex:1}.method-pill{border-radius:999px;border:1px solid transparent;padding:4px 10px;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.method-pill-group{display:flex;flex-wrap:wrap;gap:6px}.method-pill.active{box-shadow:inset 0 0 0 1px #1e293b}.method-get{background:#dcfce7;color:#166534;border-color:#86efac}.method-post{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.method-put{background:#ede9fe;color:#6d28d9;border-color:#c4b5fd}.method-patch{background:#fef3c7;color:#92400e;border-color:#fcd34d}.method-delete{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.method-other{background:#e2e8f0;color:#334155;border-color:#cbd5e1}.json-editor{border:1px solid var(--line);border-radius:8px;background:#0f172a;overflow:hidden}.json-editor-input{width:100%;min-height:120px;border:0;outline:none;resize:vertical;background:transparent;color:#e2e8f0;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.8rem;line-height:1.5;padding:10px}.cell-meta{font-size:.78rem;color:var(--ink-500);margin-top:2px}.row-actions{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.row-actions button{height:28px;border-radius:6px;font-size:.75rem;padding:0 10px;font-weight:500}.svc-toolbar-actions{display:flex;gap:8px;flex-shrink:0}.svc-filter-bar{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(120px,1fr)) minmax(150px,1fr);gap:8px;margin-bottom:8px}.svc-filter-bar input,.svc-filter-bar select{height:38px;font-size:.87rem}.svc-filter-status-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.svc-filter-count{font-size:.82rem;color:var(--ink-500);font-weight:500}.svc-clear-filters{all:unset;font-size:.78rem;color:var(--brand);font-weight:600;cursor:pointer;padding:2px 0}.svc-clear-filters:hover{color:var(--brand-deep);text-decoration:underline}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s ease}.sortable-th:hover{color:var(--ink-900)}.sort-indicator{display:inline-block;width:12px;font-size:.62rem;color:var(--ink-500);opacity:0;margin-left:3px;vertical-align:middle;transition:opacity .15s ease}.sortable-th:hover .sort-indicator{opacity:.4}.sort-indicator.active{opacity:1;color:var(--brand)}.status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 9px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;border:1px solid transparent}.status-pill.good,.status-good{color:#166534;border-color:#86efac;background:#f0fdf4}.status-pill.warn,.status-warn{color:#854d0e;border-color:#fcd34d;background:#fffbeb}.status-pill.bad,.status-bad{color:#991b1b;border-color:#fca5a5;background:#fef2f2}.status-pill.neutral{color:#334155;border-color:#cbd5e1;background:#f8fafc}.tag-cell{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.tag-pill{display:inline-flex;align-items:center;gap:3px;border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;border:1px solid var(--ink-300, #cbd5e1);background:var(--ink-50, #f8fafc);color:var(--ink-700, #334155);white-space:nowrap}.tag-pill.removable{padding-right:4px}.tag-remove{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:.78rem;line-height:1;border-radius:50%;color:#166534;opacity:.5;transition:opacity .15s}.tag-remove:hover{opacity:1}.tag-add-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;border:1px dashed #86efac;background:transparent;color:#166534;font-size:.85rem;font-weight:700;line-height:1;transition:border-color .15s,background .15s}.tag-add-btn:hover{border-style:solid;border-color:#86efac;background:#f0fdf4}.tag-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:30;min-width:120px;max-height:180px;overflow-y:auto;background:var(--surface-raised, #fff);border:1px solid var(--line, #e2e8f0);border-radius:8px;box-shadow:var(--shadow-soft, 0 4px 12px rgba(0,0,0,.08));padding:4px;display:flex;flex-wrap:wrap;gap:4px}.tag-popover-item{all:unset;cursor:pointer;border-radius:999px}.tag-popover-item:hover .tag-pill{filter:brightness(.95)}.tag-popover-empty{padding:6px 8px;font-size:.78rem;color:var(--ink-500, #94a3b8);white-space:nowrap}.tag-manage-list{display:flex;flex-direction:column;gap:6px}.tag-manage-row{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:8px;background:var(--surface-muted, #f8fafc)}.tag-manage-delete{font-size:.78rem!important;height:28px!important;padding:0 10px!important;color:#991b1b!important;border-color:#fca5a5!important}.tag-manage-delete:hover{background:#fef2f2!important}.tag-create-row{display:flex;align-items:center;gap:6px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;padding:24px;z-index:40}.modal-card{width:100%;max-width:760px;max-height:92vh;overflow-y:auto;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:0 24px 70px #0f172a3d;padding:20px;display:grid;gap:14px}.modal-card-wide{max-width:1080px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid label{display:grid;gap:5px}.form-full{grid-column:1 / -1}.builder-block{display:grid;gap:10px}.builder-inline-span{grid-column:1 / -1}.builder-header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600}.builder-empty{border:1px dashed var(--line);border-radius:10px;padding:12px;color:var(--ink-500);background:var(--surface-2)}.builder-row{display:grid;grid-template-columns:minmax(0,1.2fr) 140px minmax(0,1.4fr) 96px;gap:8px;align-items:center}.permissions-box{border:1px solid var(--line);border-radius:10px;padding:10px;margin:0}.permissions-box legend{color:var(--ink-700);font-size:.84rem;padding:0 6px}.permissions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.check-row{display:flex;align-items:center;gap:8px;font-size:.86rem}.check-row input[type=checkbox]{width:16px;height:16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-actions button{min-width:120px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-grid-compact{grid-template-columns:repeat(auto-fit,minmax(220px,320px));gap:8px;justify-content:start}.profile-grid div{display:grid;gap:4px;padding:10px;border-radius:10px;background:var(--surface-muted);border:1px solid #e2e8f0}.profile-grid span{font-size:.82rem;color:var(--ink-500)}.profile-grid strong{color:var(--ink-900);font-size:.95rem}.detail-code{font-family:JetBrains Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-meta{font-size:.82rem;color:var(--ink-500)}.detail-overview{border:1px solid var(--line);border-radius:10px;background:#fff;padding:16px}.detail-overview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.detail-overview-status{display:flex;align-items:center;gap:10px}.detail-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;margin:0}.detail-dl-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-left:1px solid var(--line)}.detail-dl-item:first-child{border-left:none;padding-left:0}.detail-dl-item dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500);font-weight:600}.detail-dl-item dd{margin:0;font-size:.92rem;font-weight:600;color:var(--ink-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-dl-item dd code{font-family:JetBrains Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;background:var(--surface-muted);padding:1px 5px;border-radius:4px}.detail-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500);font-weight:600}.detail-value{font-size:.95rem;font-weight:600;color:var(--ink-900)}.modal-header{display:grid;gap:4px}.detail-section{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.detail-section h4{margin:0 0 8px;font-size:1rem;color:var(--ink-900)}.detail-select{max-width:320px}.assignment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,420px));gap:10px;margin-top:10px;justify-content:start}.assignment-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px;display:grid;gap:8px}.assignment-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.assignment-card-header strong{font-size:.86rem;color:var(--ink-700)}.assignment-card button{width:100%}.assignment-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.assignment-controls .detail-select{max-width:none}.identity-form-grid{align-items:end}.quick-permissions{margin:12px 0;display:flex;flex-wrap:wrap;gap:8px}.quick-permissions button{height:32px;border-radius:8px;font-size:.78rem;padding:0 10px}.mono-cell{font-family:JetBrains Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}.status-note{border:1px solid rgba(13,148,136,.25);background:#0d948814;color:#0f766e;border-radius:10px;padding:10px 12px;font-size:.88rem}.action-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.action-list button{width:100%;height:40px;background:#fff;color:var(--ink-700);border:1px solid var(--line);border-radius:10px;font-size:.82rem;font-weight:600;box-shadow:0 1px 3px #0f172a0a;transition:all .15s ease}.action-list button:hover:not(:disabled){background:#0d94880f;border-color:#0d94884d;color:var(--brand-deep);box-shadow:0 2px 6px #0d948814}.activity-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.activity-list li{padding:12px 16px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eef2f7;transition:background .12s ease}.activity-list li:last-child{border-bottom:none}.activity-list li:hover{background:#f8fafc}.activity-list span{color:var(--ink-700);font-size:.88rem;font-weight:500}.activity-list strong{font-size:.88rem;font-weight:700;color:var(--ink-900);background:var(--surface-muted);border:1px solid var(--line);border-radius:8px;padding:2px 10px;min-width:32px;text-align:center;font-variant-numeric:tabular-nums}.timeframe-selector{display:flex;flex-wrap:wrap;gap:4px}.timeframe-selector button{padding:3px 10px;font-size:.72rem;font-weight:600;border:1px solid var(--line);border-radius:4px;background:var(--bg-50, #fff);color:var(--ink-500);cursor:pointer;transition:background .15s,border-color .15s}.timeframe-selector button:hover{border-color:var(--ink-300, #aaa);background:var(--bg-100, #f6f7f9)}.timeframe-selector button.active{border-color:var(--accent, #0f766e);background:var(--accent-bg, #f0fdfa);color:var(--accent, #0f766e)}.traffic-service-item{flex-direction:column!important;align-items:stretch!important;padding:0!important;gap:0!important}.traffic-service-row{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.traffic-service-row:hover{background:var(--bg-100, #f6f7f9)}.traffic-service-toggle{font-size:.75rem;color:var(--ink-400);width:12px;flex-shrink:0}.traffic-service-row>span:nth-child(2){flex:1}.traffic-route-list{list-style:none;margin:0;padding:0 0 6px;border-top:1px solid var(--line)}.traffic-route-row{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 32px;font-size:.84rem}.traffic-route-row:hover{background:var(--bg-100, #f6f7f9)}.traffic-route-method{font-weight:600;font-size:.72rem;padding:1px 5px;border-radius:4px;text-transform:uppercase;flex-shrink:0}.method-get{color:#1a7f37;background:#ddf4e4}.method-post{color:#9a6700;background:#fff4d4}.method-put,.method-patch{color:#0969da;background:#ddf4ff}.method-delete{color:#cf222e;background:#ffebe9}.traffic-route-path{flex:1;color:var(--ink-600);font-family:monospace;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.traffic-route-count{color:var(--ink-400);font-size:.78rem;flex-shrink:0}.traffic-route-loading{padding:8px 12px 8px 32px;color:var(--ink-400);font-size:.84rem}.dashboard-footer{display:flex;justify-content:space-between;gap:12px;color:var(--ink-500);font-size:.86rem}.admin-users-page{min-height:100vh;padding:24px;display:grid;align-content:start;gap:14px;background:linear-gradient(122deg,#f8fafc,#f1f5f9 45%,#f8fafc)}.admin-users-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-users-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-users-actions button{min-width:140px}.admin-users-toolbar{grid-template-columns:minmax(260px,1fr) 170px}@media(max-width:900px){body{overflow:auto}.erp-layout{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}.erp-sidebar{border-right:none;border-bottom:1px solid #dbe5ef;max-height:none;height:auto;overflow:visible}.erp-nav{max-height:280px}.erp-main{padding:16px}.erp-main-header{flex-direction:column}.erp-main-header-right{width:100%;justify-items:start}.erp-main-header-actions{justify-content:flex-start}.panel-header-row{flex-direction:column}.toolbar{grid-template-columns:1fr;width:100%}.svc-filter-bar{grid-template-columns:1fr 1fr}.svc-toolbar-actions{width:100%;justify-content:flex-start}.stats-grid,.dashboard-content,.profile-grid,.profile-grid-compact,.assignment-grid{grid-template-columns:1fr}.env-toolbar{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.env-toolbar-service{grid-template-columns:1fr}.env-toolbar input{max-width:none}.route-toolbar{grid-template-columns:1fr;align-items:stretch}.route-pagination{justify-content:stretch}.route-pagination button{flex:1}.route-playground-grid,.api-playground-layout{grid-template-columns:1fr}.api-playground-main{grid-template-rows:auto auto;min-height:auto}.api-playground-request-line{grid-template-columns:1fr}.detail-status-bar{display:grid;grid-auto-flow:row;grid-auto-columns:unset;gap:10px}.svc-detail-title-row{flex-direction:column}.svc-detail-tabs{overflow-x:auto}.svc-overview-cards,.svc-labels-grid{grid-template-columns:1fr}.svc-env-toolbar{flex-direction:column;align-items:stretch}.svc-env-toolbar input{max-width:none}.svc-stack-toolbar{flex-direction:column;align-items:stretch}.route-playground-fields,.api-playground-draft-row,.env-summary,.form-grid,.builder-row,.env-modal-grid,.permissions-grid{grid-template-columns:1fr}.dashboard-footer{flex-direction:column}.admin-users-page{padding:16px}.admin-users-header{flex-direction:column}.admin-users-actions,.admin-users-actions button{width:100%}.admin-users-toolbar{grid-template-columns:1fr}}.pk-autocomplete{position:relative}.pk-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;background:var(--surface-raised);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-soft);z-index:100;display:flex;flex-direction:column}.pk-dropdown-header{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--line)}.pk-back{all:unset;cursor:pointer;color:var(--brand);font-weight:600;font-size:.8rem}.pk-back:hover{text-decoration:underline}.pk-dropdown-item{all:unset;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:.9rem;cursor:pointer;color:var(--ink-900);font-family:SFMono-Regular,Menlo,monospace}.pk-dropdown-item:hover{background:var(--surface-muted)}.pk-dropdown-item.pk-selected{background:#0d948814;color:var(--brand-deep)}.pk-dropdown-empty{padding:12px;font-size:.85rem;color:var(--ink-500);text-align:center}.pk-loading{font-size:.78rem;color:var(--ink-500);font-family:inherit}.dd-wrap{position:relative;display:inline-flex}.dd-trigger{all:unset;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;height:38px;min-width:140px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-raised);color:var(--ink-900);font-size:.9rem;cursor:pointer;box-sizing:border-box;transition:border-color .15s}.dd-trigger:hover{border-color:var(--brand)}.dd-trigger-open{border-color:var(--brand);box-shadow:0 0 0 2px #0d94881f}.dd-trigger:disabled{opacity:.5;cursor:not-allowed}.dd-placeholder .dd-trigger-label{color:var(--ink-500)}.dd-trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-chevron{font-size:.55rem;color:var(--ink-500);flex-shrink:0}.dd-panel{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;max-height:280px;display:flex;flex-direction:column;background:var(--surface-raised);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-soft);z-index:100;overflow:hidden}.dd-filter-row{padding:6px;border-bottom:1px solid var(--line)}.dd-filter-input{height:32px!important;font-size:.85rem!important;border-radius:6px!important;padding:0 10px!important}.dd-options{overflow-y:auto;flex:1}.dd-option{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:7px 12px;font-size:.88rem;cursor:pointer;color:var(--ink-900);box-sizing:border-box;transition:background .1s}.dd-option:hover{background:var(--surface-muted)}.dd-option-selected{background:#0d94880f;color:var(--brand-deep);font-weight:600}.dd-option-selected:hover{background:#0d94881a}.dd-option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-checkbox{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;border:1.5px solid var(--line);background:var(--surface-raised);font-size:.68rem;font-weight:700;flex-shrink:0;color:transparent;transition:border-color .15s,background .15s,color .15s}.dd-checkbox-checked{border-color:var(--brand);background:var(--brand);color:#fff}.dd-empty{padding:14px 12px;font-size:.85rem;color:var(--ink-500);text-align:center}.svc-detail-panel{display:flex;flex-direction:column;gap:0}.svc-detail-header{display:flex;flex-direction:column;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line)}.svc-detail-back{all:unset;cursor:pointer;font-size:.82rem;font-weight:600;color:var(--ink-500);display:inline-flex;align-items:center;gap:4px}.svc-detail-back:hover{color:var(--brand)}.svc-detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.svc-detail-title h3{margin:0 0 4px;font-size:1.2rem;font-weight:700}.svc-detail-title-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.svc-detail-tabs{display:flex;gap:0;margin-top:14px;border-bottom:1px solid var(--line)}.svc-detail-tab{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:10px 16px;font-size:.85rem;font-weight:600;color:var(--ink-500);border-bottom:2px solid transparent;margin-bottom:-1px;background:none;transition:color .15s,border-color .15s}.svc-detail-tab:hover:not(:disabled){color:#fff;background:var(--brand-deep);transform:none}.svc-detail-tab.active,.svc-detail-tab.active:hover:not(:disabled){color:var(--brand);border-bottom-color:var(--brand);background:none;transform:none}.svc-detail-tab-badge{font-size:.72rem;font-weight:700;color:var(--ink-500);padding:1px 7px;border-radius:10px;min-width:20px;text-align:center;border:1px solid var(--line);background:none}.svc-detail-tab:hover:not(:disabled) .svc-detail-tab-badge{color:#fff;border-color:#ffffff80;background:none}.svc-detail-tab.active .svc-detail-tab-badge{color:var(--brand);border-color:var(--brand);background:none}.svc-detail-tab-content{padding-top:16px;min-height:200px}.svc-overview-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.svc-overview-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-muted)}.svc-overview-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);font-weight:700}.svc-overview-value{font-size:.92rem;font-weight:600;color:var(--ink-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svc-overview-value code{font-family:JetBrains Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;background:#e2e8f0;padding:1px 5px;border-radius:4px}.svc-labels-section,.svc-tags-section{margin-top:18px}.svc-labels-section h4,.svc-tags-section h4{margin:0 0 10px;font-size:.9rem;font-weight:700;color:var(--ink-900)}.svc-labels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:6px}.svc-label-item{display:flex;align-items:baseline;gap:8px;padding:6px 10px;border-radius:6px;background:var(--surface-muted);font-size:.8rem;overflow:hidden}.svc-label-key{font-family:JetBrains Mono,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;color:var(--brand-deep);white-space:nowrap;flex-shrink:0}.svc-label-val{font-family:JetBrains Mono,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svc-tasks-summary{margin-bottom:10px}.svc-env-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.svc-env-toolbar input{max-width:280px}.svc-stack-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap}.svc-stack-toolbar .panel-subtitle{margin:0}.stack-yaml-view{background:#1a1b26;color:#a9b1d6;border-radius:10px;padding:16px 18px;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem;line-height:1.65;overflow-x:auto;white-space:pre;-moz-tab-size:2;tab-size:2;border:1px solid #2a2b3d}.stack-yaml-view code{font-family:inherit;font-size:inherit;background:none;padding:0}.stack-editor{width:100%;min-height:200px;background:#1a1b26;color:#a9b1d6;border:2px solid var(--brand);border-radius:10px;padding:16px 18px;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem;line-height:1.65;resize:vertical;-moz-tab-size:2;tab-size:2;white-space:pre;overflow-x:auto;box-sizing:border-box}.stack-editor:focus{outline:none;border-color:var(--brand-deep);box-shadow:0 0 0 3px #0d948826}.stack-editor:disabled{opacity:.6;cursor:not-allowed}.tpl-editor-layout{display:grid;gap:12px}.tpl-editor-meta{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:18px;display:grid;gap:12px;box-shadow:0 8px 18px #0f172a09}.tpl-editor-meta-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tpl-field{display:grid;gap:6px}.tpl-field-label{font-size:.82rem;font-weight:650;color:var(--ink-700);text-transform:uppercase;letter-spacing:.04em}.tpl-variables{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--line)}.tpl-variables-label{font-size:.8rem;color:var(--ink-500);font-weight:600}.tpl-variable-chip{display:inline-block;font-size:.76rem;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;background:#0d948814;color:var(--brand-deep);border:1px solid rgba(13,148,136,.2);border-radius:5px;padding:2px 7px}.tpl-editor-card{border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden;box-shadow:0 8px 18px #0f172a09}.tpl-editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface-muted)}.tpl-editor-tabs{display:flex;gap:2px}.tpl-tab{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:.84rem;font-weight:600;color:var(--ink-500);border-radius:7px;transition:color .15s,background .15s}.tpl-tab:hover{color:var(--ink-900);background:#0f172a0a}.tpl-tab.active{color:var(--ink-900);background:#fff;box-shadow:0 1px 3px #0f172a1a}.tpl-editor-actions{display:flex;align-items:center;gap:10px}.tpl-preview-toggle{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-size:.8rem;font-weight:600;color:var(--ink-500);padding:5px 10px;border-radius:6px;border:1px solid var(--line);background:#fff;transition:color .15s,border-color .15s,background .15s}.tpl-preview-toggle:hover{color:var(--ink-900);border-color:#94a3b8}.tpl-preview-toggle.active{color:var(--brand-deep);border-color:#0d948859;background:#0d94880f}.tpl-line-count{font-size:.76rem;color:var(--ink-500);font-variant-numeric:tabular-nums;white-space:nowrap}.tpl-editor-body{display:grid;grid-template-columns:1fr;min-height:420px}.tpl-editor-body.with-preview{grid-template-columns:1fr 1fr}.tpl-code-editor{display:grid;grid-template-columns:auto 1fr;background:#1a1b26;min-height:420px;position:relative}.tpl-line-numbers{display:flex;flex-direction:column;padding:16px 0;text-align:right;-webkit-user-select:none;user-select:none;overflow:hidden;background:#16171f;border-right:1px solid #2a2b3d;min-width:44px}.tpl-line-numbers span{display:block;padding:0 10px 0 8px;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.78rem;line-height:1.65;color:#4a4b5c}.tpl-textarea-wrapper{position:relative;overflow:hidden}.tpl-code-input{width:100%;height:100%;min-height:420px;border:none;outline:none;resize:none;padding:16px 18px;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem;line-height:1.65;-moz-tab-size:2;tab-size:2;white-space:pre;overflow-x:auto;box-sizing:border-box;background:transparent;color:#a9b1d6;caret-color:#7aa2f7;position:relative;z-index:1}.tpl-textarea-wrapper .tpl-code-input{color:transparent}.tpl-code-input::placeholder{color:#4a4b5c}.tpl-code-input:focus{outline:none}.tpl-code-input.tpl-text-mode{background:#1a1b26;color:#a9b1d6}.tpl-code-highlight{position:absolute;top:0;left:0;right:0;bottom:0;padding:16px 18px;margin:0;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem;line-height:1.65;-moz-tab-size:2;tab-size:2;white-space:pre;overflow:hidden;pointer-events:none;color:#a9b1d6;z-index:0}.tpl-code-highlight .hljs-tag{color:#7aa2f7}.tpl-code-highlight .hljs-name{color:#f7768e}.tpl-code-highlight .hljs-attr{color:#bb9af7}.tpl-code-highlight .hljs-string{color:#9ece6a}.tpl-code-highlight .hljs-comment{color:#565f89;font-style:italic}.tpl-code-highlight .hljs-keyword{color:#bb9af7}.tpl-code-highlight .hljs-literal{color:#ff9e64}.tpl-code-highlight .hljs-symbol{color:#7dcfff}.tpl-preview-pane{display:flex;flex-direction:column;border-left:1px solid var(--line);background:#fff}.tpl-preview-header{padding:8px 14px;border-bottom:1px solid var(--line);background:var(--surface-muted);font-size:.78rem;font-weight:650;color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em}.tpl-preview-frame{flex:1;border:none;width:100%;min-height:400px;background:#fff}.tpl-help-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-muted);font-size:.82rem;color:var(--ink-500)}.tpl-help-bar code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.78rem;background:#0d948814;color:var(--brand-deep);padding:1px 5px;border-radius:4px}.tpl-editor-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 8px 18px #0f172a09}.tpl-view-code{margin:4px 0 0;padding:12px 14px;background:#1a1b26;color:#a9b1d6;border-radius:8px;border:1px solid #2a2b3d;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem;line-height:1.6;white-space:pre-wrap;word-break:break-all;max-height:260px;overflow-y:auto}.manage-form{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-raised);overflow:hidden}.manage-form>.manage-success,.manage-form>.error{margin:16px 18px 0}.manage-form-section{padding:18px;border-bottom:1px solid var(--line)}.manage-form-section:last-of-type{border-bottom:none}.manage-label-editor{display:flex;flex-direction:column;gap:6px;margin-top:4px}.manage-label-header{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);padding-bottom:2px}.manage-label-row{display:grid;grid-template-columns:1fr 1fr 34px;gap:8px;align-items:center}.manage-label-row input{height:38px;font-size:.82rem;font-family:JetBrains Mono,SFMono-Regular,Menlo,Consolas,monospace}.manage-label-delete{all:unset;cursor:pointer;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;font-size:1.1rem;color:var(--ink-500);transition:background .15s,color .15s}.manage-label-delete:hover{background:var(--danger-bg);color:var(--danger-ink)}.manage-form-actions{display:flex;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--line);background:var(--surface-muted)}.manage-form-actions button{min-width:140px}.manage-success{border:1px solid #bbf7d0;background:#f0fdf4;color:#15803d;border-radius:10px;padding:10px 12px;font-size:.9rem}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.table-loader-row td{padding:14px}.skeleton-bar{height:14px;border-radius:6px;background:linear-gradient(90deg,#e2e8f0 25%,#edf2f7,#e2e8f0 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@media(max-width:900px){.tpl-editor-meta-fields,.tpl-editor-body.with-preview{grid-template-columns:1fr}.tpl-preview-pane{border-left:none;border-top:1px solid var(--line)}}.audit-filter-bar{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:10px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:0;align-items:end}.audit-filter-field{display:flex;flex-direction:column;gap:4px;position:relative}.audit-filter-label{font-size:.75rem;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em}.audit-input-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:none;color:var(--ink-500);font-size:1.1rem;cursor:pointer;padding:2px 6px;line-height:1;border-radius:4px;height:auto;width:auto;min-width:0}.audit-input-clear:hover{color:var(--ink-900);background:#0000000f}.audit-type-dropdown{position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--surface-raised);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0f172a1f;max-height:220px;overflow-y:auto;margin-top:4px}.audit-type-option{display:block;width:100%;text-align:left;padding:8px 12px;border:none;background:none;cursor:pointer;font-size:.85rem;color:var(--ink-900);border-radius:0;height:auto;min-width:0}.audit-type-option:hover{background:var(--surface-muted)}.audit-type-option-active{background:#0d948814;color:var(--brand-deep)}.audit-type-option code{font-size:.8rem}.audit-dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:19}.audit-presets-row{display:flex;align-items:center;gap:6px;padding:8px 0;flex-wrap:wrap}.audit-presets-label{font-size:.8rem;color:var(--ink-500);margin-right:2px}.audit-preset-btn{padding:3px 10px;font-size:.78rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-raised);color:var(--ink-700);cursor:pointer;height:auto;min-width:0;transition:all .15s ease}.audit-preset-btn:hover{border-color:var(--brand);color:var(--brand-deep);background:#0d94880a}.audit-preset-btn-active{border-color:var(--brand);background:#0d94881a;color:var(--brand-deep);font-weight:600}.audit-pills-row{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0}.audit-pill{display:inline-flex;align-items:center;gap:4px;background:#0d948814;border:1px solid rgba(13,148,136,.2);border-radius:16px;padding:3px 6px 3px 10px;font-size:.78rem;color:var(--brand-deep)}.audit-pill-label{font-weight:600}.audit-pill-value{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-pill-remove{border:none;background:none;color:var(--brand-deep);cursor:pointer;font-size:1rem;line-height:1;padding:0 3px;border-radius:50%;height:auto;width:auto;min-width:0;opacity:.6}.audit-pill-remove:hover{opacity:1;background:#0d948826}@media(max-width:1200px){.audit-filter-bar{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.audit-filter-bar{grid-template-columns:1fr}}.tab-btn{padding:.375rem .875rem;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--ink-500);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.tab-btn:hover{background:var(--surface-muted);color:var(--ink-700)}.tab-btn-active{border-color:var(--brand);background:#0d94881a;color:var(--brand-deep);font-weight:600}.nav-section-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#94a3b8;padding:16px 10px 2px;margin:0}.nav-section-label:first-child{padding-top:4px}.erp-nav-item-compact{height:auto;text-align:left;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink-700);padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.88rem;font-weight:600}.erp-nav-item-compact:hover:not(:disabled){background:#f8fafc;border-color:#e2e8f0;transform:none}.erp-nav-item-compact.active{border-color:#0d948852;background:#0d94881a;color:#0f766e}.page-toolbar{display:flex;align-items:center;gap:8px;padding:0 0 2px}.page-toolbar input[type=text],.page-toolbar input[type=search]{height:36px;font-size:.85rem}.page-toolbar select{height:36px;font-size:.85rem;width:auto;min-width:140px;max-width:200px}.toolbar-search{width:240px;min-width:180px;flex-shrink:1}.toolbar-spacer{flex:1;min-width:8px}.toolbar-count{font-size:.8rem;color:var(--ink-500);white-space:nowrap;padding:0 4px}.page-card{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:20px;box-shadow:0 8px 18px #0f172a09}.page-card+.page-card{margin-top:14px}.page-card-title{margin:0 0 16px;font-size:1.05rem}.page-card-subtitle{margin:-12px 0 16px;color:var(--ink-500);font-size:.85rem}.page-card-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.page-filter-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;padding:10px 0 4px}.page-filter-bar input,.page-filter-bar select{height:36px;font-size:.85rem}.toolbar-select{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;font-size:.85rem;background:var(--card);color:var(--ink-900)}.pdf-meta-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:8px}.pdf-meta-bar input[type=text]{height:32px;font-size:.82rem;border:1px solid var(--line);border-radius:6px;padding:0 10px;background:#fff}.pdf-meta-name{flex:0 0 200px}.pdf-meta-desc{flex:1;min-width:120px}.pdf-meta-tags{flex:0 0 180px}.pdf-meta-public{display:flex;align-items:center;gap:4px;font-size:.78rem;font-weight:500;color:var(--ink-700);white-space:nowrap;cursor:pointer}.pdf-meta-public input{width:auto;margin:0}.pdf-dnd-layout{display:grid;grid-template-columns:140px 1fr 340px;border:1px solid var(--line);border-radius:10px;background:var(--card);min-height:560px;overflow:hidden}.pdf-palette{background:var(--surface-muted);border-right:1px solid var(--line);padding:10px 8px;display:flex;flex-direction:column;gap:4px}.pdf-palette-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-500);padding:6px 4px 2px}.pdf-palette-item{height:32px;padding:0 10px;font-size:.78rem;font-weight:500;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink-700);cursor:grab;display:flex;align-items:center;gap:6px;transition:border-color .15s,box-shadow .15s;-webkit-user-select:none;user-select:none;white-space:nowrap}.pdf-palette-item:hover{border-color:var(--brand);box-shadow:0 1px 3px #0d948826}.pdf-palette-item:active{cursor:grabbing}.pdf-palette-icon{font-size:.7rem;width:16px;text-align:center;color:var(--brand);flex-shrink:0}.pdf-canvas-wrap{background:#e8ecf1;padding:20px;overflow-y:auto;display:flex;justify-content:center}.pdf-canvas{background:#fff;box-shadow:0 2px 12px #0f172a14;border-radius:2px;width:420px;min-height:594px;position:relative;padding:20px;display:flex;flex-direction:column}.pdf-canvas-empty{flex:1;display:flex;align-items:center;justify-content:center;border:2px dashed var(--line);border-radius:8px;color:var(--ink-500);font-size:.85rem;min-height:200px}.pdf-canvas-item{position:relative;cursor:pointer;border:1px solid transparent;border-radius:4px;transition:border-color .1s,box-shadow .1s}.pdf-canvas-item:hover{border-color:#0d94884d}.pdf-canvas-item.selected{border-color:var(--brand);box-shadow:0 0 0 2px #0d948826}.pdf-canvas-item.dragging{opacity:.35}.pdf-canvas-item .pdf-canvas-delete{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:3px;border:none;background:var(--danger-bg);color:var(--danger-ink);font-size:.6rem;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0}.pdf-canvas-item.selected .pdf-canvas-delete,.pdf-canvas-item:hover .pdf-canvas-delete{display:flex}.pdf-drop-indicator{height:2px;background:var(--brand);border-radius:1px;margin:-1px 0;pointer-events:none}.pdf-cv-text{min-height:14px;word-break:break-word;white-space:pre-wrap}.pdf-cv-text.empty{color:var(--ink-500);font-style:italic;font-size:.8rem}.pdf-cv-spacer{background:repeating-linear-gradient(0deg,transparent,transparent 3px,#e2e8f0 3px,#e2e8f0 4px);opacity:.5;border-radius:2px}.pdf-cv-line{border:none;margin:2px 0}.pdf-cv-pagebreak{border-top:2px dashed #94a3b8;text-align:center;padding:4px 0;font-size:.7rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.pdf-cv-image{background:#f1f5f9;border:1px dashed var(--line);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--ink-500);font-size:.75rem}.pdf-cv-row{display:flex;gap:4px}.pdf-cv-col{border:1px dashed rgba(13,148,136,.25);border-radius:3px;padding:4px 6px;font-size:.78rem;min-height:20px;word-break:break-word}.pdf-cv-table{width:100%;border-collapse:collapse;font-size:.72rem}.pdf-cv-table th{padding:3px 6px;text-align:left;font-weight:600;border:1px solid var(--line)}.pdf-cv-table td{padding:3px 6px;border:1px solid var(--line)}.pdf-props-panel{border-left:1px solid var(--line);overflow-y:auto;overflow-x:hidden}.pdf-props-form{padding:14px 16px}.pdf-props-form h4{margin:0 0 12px;font-size:.88rem;font-weight:600;color:var(--ink-700);padding-bottom:8px;border-bottom:1px solid var(--line)}.pdf-props-section-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-500);margin:14px 0 6px}.pdf-props-row{display:flex;gap:6px;margin-bottom:6px}.pdf-props-row>.tpl-field{flex:1;min-width:0}.pdf-props-form textarea{width:100%;min-height:70px;font-size:.85rem;font-family:inherit;border:1px solid var(--line);border-radius:8px;padding:8px 10px;resize:vertical}.pdf-props-form textarea:focus{outline:none;border-color:#0d948873;box-shadow:0 0 0 3px #0d94881f}.pdf-spacing-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:4px}.pdf-spacing-grid .tpl-field{min-width:0}.pdf-spacing-grid input{text-align:center;font-size:.78rem}.pdf-col-editor{padding:10px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;background:var(--surface-muted)}.pdf-col-editor .pdf-props-row{flex-wrap:wrap}.pdf-inline-btn{height:28px;padding:0 10px;font-size:.75rem;font-weight:500;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink-700);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background .15s,border-color .15s;margin-top:4px}.pdf-inline-btn:hover{background:#f8fafc;border-color:var(--brand);color:var(--brand-deep)}.pdf-btn-del{background:#fff;border:1px solid var(--danger-line);border-radius:4px;width:22px;height:22px;padding:0;font-size:.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--danger-ink);transition:background .1s}.pdf-btn-del:hover{background:var(--danger-bg)}.pdf-props-empty{padding:40px 20px;text-align:center;color:var(--ink-500);font-size:.85rem}.cp-wrap{position:relative}.cp-trigger{display:flex;align-items:center;gap:6px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;font-size:.78rem;color:var(--ink-700);width:100%;transition:border-color .15s}.cp-trigger:hover{border-color:var(--brand)}.cp-swatch{width:16px;height:16px;border-radius:3px;border:1px solid rgba(0,0,0,.1);flex-shrink:0}.cp-hex{font-family:monospace;font-size:.75rem;color:var(--ink-500)}.cp-dropdown{position:fixed;z-index:100;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0f172a1f;padding:10px;width:232px}.cp-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;margin-bottom:8px}.cp-cell{width:24px;height:24px;border-radius:4px;border:2px solid transparent;cursor:pointer;padding:0;transition:border-color .1s,transform .1s}.cp-cell:hover{transform:scale(1.2);border-color:#0003}.cp-cell.active{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.cp-custom{display:flex;gap:4px;border-top:1px solid var(--line);padding-top:8px}.cp-input{flex:1;height:28px;padding:0 8px;border:1px solid var(--line);border-radius:5px;font-size:.78rem;font-family:monospace;color:var(--ink-700)}.cp-input:focus{outline:none;border-color:#0d948873;box-shadow:0 0 0 2px #0d94881f}.cp-apply{height:28px;padding:0 10px;border-radius:5px;border:none;background:var(--brand);color:#fff;font-size:.72rem;font-weight:600;cursor:pointer}.cp-apply:hover{background:var(--brand-deep)}
