:root{--bg: #f4f6f8;--panel: #ffffff;--border: #d9dee3;--text: #1f2933;--muted: #6b7680;--primary: #0b6bcb;--primary-dark: #084f96;--danger: #c0392b;--ok: #1e8449;--selected: #e8f1fb;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--border)}.topbar h1{font-size:18px;margin:0;white-space:nowrap}.topbar .meta{flex:1;display:flex;gap:8px}.topbar .meta input{flex:1}.topbar .actions{display:flex;align-items:center;gap:8px}.layout{flex:1;display:grid;grid-template-columns:260px 1fr 340px;gap:16px;padding:16px 20px}.left{display:flex;flex-direction:column;gap:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px}.panel h2{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px}.muted{color:var(--muted);font-size:13px}ul,ol{list-style:none;margin:0;padding:0}.palette-item,.canvas-item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--panel);margin-bottom:8px}.palette-item{cursor:grab}.palette-item .label{flex:1}.palette-item.dragging,.canvas-item.dragging{box-shadow:0 6px 18px #00000026}.icon{width:28px;text-align:center;font-weight:600;color:var(--primary)}.canvas-list{min-height:300px;padding:6px;border:2px dashed transparent;border-radius:8px}.canvas-list.over{border-color:var(--primary);background:var(--selected)}.canvas-item{cursor:pointer}.canvas-item.selected{border-color:var(--primary);background:var(--selected)}.canvas-item .handle{cursor:grab;color:var(--muted)}.canvas-item .info{flex:1;display:flex;flex-direction:column}.canvas-item small{color:var(--muted)}.required{color:var(--danger)}.empty{padding:40px;text-align:center;color:var(--muted)}button{font:inherit;white-space:nowrap;flex-shrink:0;padding:8px 14px;border-radius:6px;border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer}button:hover:not(:disabled){background:var(--primary-dark)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--panel);color:var(--primary)}button.link{background:none;border:none;color:var(--primary);padding:2px 4px;text-align:left}button.link.active{font-weight:600;text-decoration:underline}button.add,button.remove{padding:2px 8px;line-height:1.2}button.remove{background:none;border-color:var(--border);color:var(--danger)}input,select,textarea{font:inherit;padding:7px 9px;border:1px solid var(--border);border-radius:6px;width:100%}input[aria-invalid=true]{border-color:var(--danger)}.field-editor label{display:flex;flex-direction:column;gap:4px;font-size:13px;margin-bottom:12px}.field-editor label.checkbox{flex-direction:row;align-items:center;gap:8px}.field-editor label.checkbox input{width:auto}fieldset{border:1px solid var(--border);border-radius:6px;margin:0 0 12px;padding:8px 10px 4px}legend{font-size:12px;color:var(--muted)}.row{display:flex;gap:8px;align-items:center}.row.between{justify-content:space-between}.row label{flex:1}.row.option{margin-bottom:6px}.error{color:var(--danger)}.notice{margin:12px 20px 0;padding:10px 14px;border-radius:6px;display:flex;justify-content:space-between}.notice.ok{background:#e6f4ea;color:var(--ok)}.notice.error{background:#fdecea;color:var(--danger)}.issues{margin:12px 20px 0;padding:10px 14px;background:#fff6e5;border:1px solid #f5c87a;border-radius:6px;color:#8a5a00;font-size:13px}.form-list ul{margin-top:8px}.form-list li button{width:100%}.json pre{background:#0f172a;color:#e2e8f0;padding:10px;border-radius:6px;font-size:12px;overflow:auto;max-height:400px}.json h3{font-size:13px;margin:12px 0 6px}@media (max-width: 1000px){.layout{grid-template-columns:1fr}}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{max-width:420px;width:100%;text-align:center;padding:32px}.auth-card h1{font-size:22px;margin:0 0 16px}.userbar{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:6px 20px;font-size:13px;background:#0f172a;color:#e2e8f0}.userbar small{opacity:.7}.userbar button.link{color:#93c5fd}.maintabs{display:flex;align-items:center;gap:4px;padding:0 20px;background:var(--panel);border-bottom:1px solid var(--border)}.maintabs h1{font-size:18px;margin:0 24px 0 0}.maintabs button,.subtabs button{background:none;border:none;border-bottom:3px solid transparent;border-radius:0;color:var(--muted);padding:12px 14px}.maintabs button:hover:not(:disabled),.subtabs button:hover:not(:disabled){background:var(--selected)}.maintabs button.active,.subtabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.subtabs{display:flex;gap:4px;padding:0 20px;background:var(--panel);border-bottom:1px solid var(--border)}.subtabs button{padding:8px 14px}.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;margin-right:6px}.badge.draft{background:#eceff1;color:#546e7a}.badge.published{background:#e6f4ea;color:var(--ok)}.badge.closed{background:#fdecea;color:var(--danger)}.list-meta{display:block;color:var(--muted);padding:0 4px 8px}.layout.single{grid-template-columns:260px 1fr}.panel.wide{min-width:0}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0}label.checkbox{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:14px}label.checkbox input{width:auto}.hint{background:#fff6e5;border:1px solid #f5c87a;border-radius:6px;color:#8a5a00;font-size:13px;padding:8px 12px}.ok-text{color:var(--ok)}.table-scroll{overflow:auto;max-height:60vh;border:1px solid var(--border);border-radius:6px;margin-top:12px}table.results{border-collapse:collapse;width:100%;font-size:13px}table.results th,table.results td{border-bottom:1px solid var(--border);padding:6px 10px;text-align:left;white-space:nowrap}table.results th{position:sticky;top:0;background:#f0f3f6}table.results th.meta{color:var(--muted);font-weight:500}.pager{margin-top:10px}.people{display:grid;grid-template-columns:3fr 2fr;gap:16px;padding:16px 20px;align-items:start}.people .notice{grid-column:1 / -1;margin:0}.people form.row{margin:12px 0}@media (max-width: 1000px){.people,.two-columns,.layout.single{grid-template-columns:1fr}}.side-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:-4px 0 12px}.side-tabs button{background:none;border:none;border-bottom:3px solid transparent;border-radius:0;color:var(--muted);padding:6px 10px;font-size:13px}.side-tabs button:hover:not(:disabled){background:var(--selected)}.side-tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.phone{width:300px;max-width:100%;margin:0 auto;padding:10px;border-radius:32px;background:#111827;box-shadow:0 8px 24px #00000040}.phone-notch{width:70px;height:6px;margin:2px auto 8px;border-radius:3px;background:#374151}.phone-screen{background:#fdfcff;border-radius:22px;overflow:hidden;height:560px;display:flex;flex-direction:column;font-family:Roboto,system-ui,sans-serif;font-size:14px}.phone-appbar{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#eef3fb;font-size:16px}.phone-appbar strong{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phone-body{flex:1;overflow-y:auto;padding:16px}.phone-description,.phone-empty{color:#5f6368;margin:0 0 16px}.phone-field{margin-bottom:16px;padding:3px;border-radius:8px;cursor:pointer;outline:2px solid transparent}.phone-field.selected{outline-color:var(--primary);background:var(--selected)}.phone-input{position:relative;border:1px solid #79747e;border-radius:4px;min-height:52px;padding:18px 12px 6px;background:#fdfcff}.phone-input.tall{min-height:96px}.phone-label{display:block;font-size:12px;color:#49454f;margin-bottom:4px}.phone-input .phone-label{position:absolute;top:-9px;left:9px;padding:0 4px;background:#fdfcff;margin:0}.phone-placeholder{color:#9aa0a6}.phone-icon{position:absolute;right:12px;top:16px}.phone-hint{display:block;color:#5f6368;font-size:12px;padding:4px 12px 0}.phone-switch{display:flex;justify-content:space-between;align-items:center;padding:8px 4px}.phone-toggle{width:44px;height:24px;border-radius:12px;border:2px solid #79747e;background:#e7e0ec;position:relative}.phone-toggle:after{content:"";position:absolute;top:4px;left:4px;width:12px;height:12px;border-radius:50%;background:#79747e}.phone-group{border:1px solid #79747e;border-radius:4px;padding:10px 12px}.phone-check{display:flex;align-items:center;gap:10px;padding:6px 0}.phone-box{width:16px;height:16px;border:2px solid #49454f;border-radius:2px}.phone-actions{display:flex;flex-wrap:wrap;gap:8px}.phone-button,.phone-submit{display:inline-block;padding:8px 14px;border-radius:20px;background:#0b6bcb;color:#fff;font-size:13px}.phone-button.outline{background:none;color:#0b6bcb;border:1px solid #79747e}.phone-submit{display:block;text-align:center;padding:11px;margin-top:8px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#000c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px}.lightbox img{max-width:100%;max-height:80vh;border-radius:8px;background:#fff}.phone-value{display:block;margin-bottom:8px;font-variant-numeric:tabular-nums}.phone-auto{display:block;margin-top:6px;color:#5f6368;font-size:11px}.map-canvas{height:62vh;min-height:360px;margin-top:12px;border:1px solid var(--border);border-radius:6px;background:#e5e9ee}.map-list-title{font-size:13px;margin:16px 0 6px;color:var(--muted)}.map-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.map-list a{margin-left:auto;color:var(--primary)}.map-balloon{font:13px system-ui,sans-serif;color:#1f2933;max-width:280px}.map-balloon strong,.map-balloon small{display:block}.map-balloon dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0 0}.map-balloon dt{color:#6b7680}.map-balloon dd{margin:0}.map-balloon button.link{background:none;border:none;padding:0;color:#0b6bcb;cursor:pointer;font:inherit}
