:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;--bg: #f3f4f7;--bg-canvas: #d4d7dc;--surface: #ffffff;--surface-alt: #f6f7f9;--border: #d6d9df;--border-strong: #adb1ba;--text: #1f2329;--muted: #6b7280;--accent: #2080d0;--accent-deep: #1668b5;--accent-soft: #e3eefb;--accent-tint: #f0f6fd;--danger: #d83a3a;--selection: #2080d0;--warning: #e3a813;--chrome-navy: #1c4e8e;--chrome-navy-deep: #143a6c;--chrome-navy-text: #ffffff;--band-rtb: #5b6cf0;--band-phb: #f0c04a;--band-gh: #e08fb4;--band-data: #58c172;--band-gf: #d77fa6;--band-rs: #f0843e;--band-pfb: #c89d2c;--band-label-fg: #ffffff}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:13px;overflow:hidden}button{font:inherit}.app{display:grid;grid-template-rows:auto 1fr auto;height:100%}.ribbon{background:var(--surface);border-bottom:1px solid var(--border-strong);user-select:none}.ribbon-topbar{display:flex;align-items:stretch;background:var(--chrome-navy);color:var(--chrome-navy-text);height:32px}.ribbon-tabstrip{display:flex;align-items:stretch}.ribbon-tab{background:transparent;border:0;padding:0 18px;font-size:13px;color:#ffffffe0;cursor:pointer;font-weight:500;position:relative}.ribbon-tab:hover{background:#ffffff12;color:#fff}.ribbon-tab.active{background:var(--surface);color:var(--text);font-weight:600}.ribbon-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent)}.ribbon-tab:first-of-type{font-weight:600}.ribbon-topbar-right{margin-left:auto;display:flex;align-items:center;gap:4px;padding:0 8px}.ribbon-topbar-action{background:transparent;color:#ffffffe0;border:0;padding:0 10px;height:24px;font-size:12px;cursor:pointer;border-radius:3px}.ribbon-topbar-action:hover:not(:disabled){background:#ffffff1a}.ribbon-topbar-action:disabled{opacity:.5;cursor:default}.ribbon-topbar-lang{font-size:12px;color:#ffffffe0;padding:0 8px}.ribbon-topbar-cta{background:#fff;color:var(--chrome-navy-deep);border:0;padding:4px 14px;font-size:12px;font-weight:600;border-radius:3px;cursor:pointer;margin-left:4px}.ribbon-topbar-cta:disabled{opacity:.6;cursor:default}.ribbon-content{display:flex;align-items:stretch;padding:4px 6px;background:var(--surface);min-height:96px;overflow-x:auto}.ribbon-empty{padding:12px 16px;color:var(--muted);font-size:12px}.ribbon-group{display:flex;flex-direction:column;border-right:1px solid var(--border);padding:4px 6px;min-width:60px}.ribbon-group-body{flex:1;display:flex;flex-direction:row;align-items:center;gap:4px;flex-wrap:wrap}.ribbon-group-title{text-align:center;font-size:10px;color:var(--muted);padding-top:4px;text-transform:capitalize}.ribbon-stack{display:flex;flex-direction:column;gap:1px}.ribbon-row{display:flex;align-items:center;gap:2px}.ribbon-btn-large{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;background:transparent;border:1px solid transparent;border-radius:4px;padding:4px 8px;min-width:56px;min-height:64px;cursor:pointer;color:var(--text)}.ribbon-btn-large .ribbon-btn-icon{width:24px;height:24px;color:var(--accent);display:inline-flex;align-items:center;justify-content:center}.ribbon-btn-large .ribbon-btn-label{font-size:11px;text-align:center;line-height:1.15;word-break:break-word;color:var(--text)}.ribbon-btn-large:hover:not(.disabled):not(:disabled){background:var(--accent-tint);border-color:var(--accent-soft)}.ribbon-btn-large.active{background:var(--accent-soft);border-color:var(--accent)}.ribbon-btn-large.disabled,.ribbon-btn-large:disabled{opacity:.4;cursor:not-allowed}.ribbon-btn-small{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid transparent;border-radius:3px;padding:3px 5px;height:22px;cursor:pointer;color:var(--text)}.ribbon-btn-small .ribbon-btn-icon{width:16px;height:16px;color:var(--text);display:inline-flex;align-items:center;justify-content:center}.ribbon-btn-small .ribbon-btn-label{font-size:12px}.ribbon-btn-small:hover:not(.disabled):not(:disabled){background:var(--accent-tint);border-color:var(--accent-soft)}.ribbon-btn-small.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}.ribbon-btn-small.active .ribbon-btn-icon{color:var(--accent-deep)}.ribbon-btn-small.disabled,.ribbon-btn-small:disabled{opacity:.4;cursor:not-allowed}.ribbon-select{height:22px;border:1px solid var(--border);border-radius:3px;background:#fff;padding:0 4px;font-size:12px}.ribbon-select.font-family{width:130px}.ribbon-select.font-size{width:52px}.ribbon-num{height:22px;width:48px;border:1px solid var(--border);border-radius:3px;background:#fff;padding:0 4px;font-size:12px}.ribbon-label{color:var(--muted);font-size:11px;width:14px;text-align:center}.ribbon-color{position:relative}.ribbon-color .color-trigger{display:inline-flex;flex-direction:column;align-items:center;padding:2px 4px}.ribbon-color .color-swatch{width:14px;height:3px;background:#000;border:1px solid rgba(0,0,0,.2)}.color-popover{position:absolute;top:100%;left:0;z-index:50;background:var(--surface);border:1px solid var(--border-strong);border-radius:4px;padding:6px;display:flex;flex-direction:column;gap:4px;box-shadow:0 8px 20px #0000002e}.color-clear{background:var(--surface-alt);border:1px solid var(--border);padding:4px 8px;border-radius:3px;font-size:11px;cursor:pointer}.color-clear:hover{background:var(--accent-tint)}.workspace{display:grid;grid-template-columns:36px 280px 1fr;gap:0;min-height:0;height:100%}.vertical-tool-strip{background:var(--surface);border-right:1px solid var(--border-strong);display:flex;flex-direction:column;align-items:center;padding:4px 0;gap:2px;position:relative;z-index:30}.strip-btn{width:30px;height:30px;background:transparent;border:1px solid transparent;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted)}.strip-btn:hover{background:var(--accent-tint);color:var(--accent-deep)}.strip-btn.active{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent)}.strip-flyout{position:absolute;top:4px;left:100%;margin-left:4px;background:var(--surface);border:1px solid var(--border-strong);border-radius:4px;box-shadow:0 10px 24px #00000029;min-width:220px;max-height:70vh;overflow:auto;z-index:40}.strip-flyout-header{padding:6px 12px;background:var(--surface-alt);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.strip-flyout-body{padding:4px 0}.strip-flyout-item{display:flex;align-items:center;gap:8px;padding:5px 12px;cursor:pointer;user-select:none}.strip-flyout-item:hover:not(.disabled){background:var(--accent-tint)}.strip-flyout-item:active:not(.disabled){background:var(--accent-soft)}.strip-flyout-item.disabled{opacity:.4;cursor:not-allowed}.strip-flyout-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent)}.strip-flyout-item.disabled .strip-flyout-icon{color:var(--muted)}.strip-flyout-label{flex:1;font-size:12.5px;white-space:nowrap}.left-panel{background:var(--surface);border-right:1px solid var(--border-strong);display:grid;grid-template-rows:auto 1fr auto;min-height:0}.left-panel-header{background:var(--surface);border-bottom:1px solid var(--border);padding:6px 12px;display:flex;align-items:center;justify-content:space-between}.left-panel-title{font-size:14px;font-weight:600;color:var(--text)}.left-panel-body{overflow:auto;min-height:0}.left-panel-tabs{display:flex;align-items:stretch;border-top:1px solid var(--border);background:var(--surface-alt)}.left-panel-tab{flex:1;background:transparent;border:0;border-right:1px solid var(--border);padding:8px 6px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:var(--text);position:relative;font-size:12px}.left-panel-tab:last-child{border-right:0}.left-panel-tab svg{width:14px;height:14px;color:var(--muted)}.left-panel-tab span{font-size:12px}.left-panel-tab:hover{background:var(--accent-tint)}.left-panel-tab:hover svg{color:var(--accent)}.left-panel-tab.active{background:var(--surface);font-weight:600}.left-panel-tab.active svg{color:var(--accent)}.left-panel-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent)}.report-tree{padding:4px 0 12px;font-size:12.5px}.tree-row{display:flex;align-items:center;gap:4px;padding:3px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;min-height:22px}.tree-row.depth-0{padding-left:12px;font-weight:600}.tree-row.depth-1{padding-left:14px}.tree-row.depth-2{padding-left:30px}.tree-row.depth-3{padding-left:50px;color:#4a4f59}.tree-row:hover{background:var(--accent-tint)}.tree-row.selected{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}.tree-row .twisty{width:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);flex-shrink:0}.tree-row .twisty.placeholder{cursor:default}.tree-row .tree-icon{width:14px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);flex-shrink:0}.tree-row.selected .tree-icon{color:var(--accent-deep)}.tree-row .tree-band-swatch{width:10px;height:14px;border-radius:2px;flex-shrink:0}.tree-band-swatch.kind-ReportTitle{background:var(--band-rtb)}.tree-band-swatch.kind-PageHeader{background:var(--band-phb)}.tree-band-swatch.kind-GroupHeader{background:var(--band-gh)}.tree-band-swatch.kind-Data{background:var(--band-data)}.tree-band-swatch.kind-GroupFooter{background:var(--band-gf)}.tree-band-swatch.kind-ReportSummary{background:var(--band-rs)}.tree-band-swatch.kind-PageFooter{background:var(--band-pfb)}.tree-row .tree-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-row .tree-meta{font-size:10.5px;color:var(--muted);margin-left:4px}.tree-row.selected .tree-meta{color:var(--accent-deep)}.dict-tree{font-size:12.5px;padding:4px 0 12px}.dict-node{display:flex;align-items:center;gap:4px;padding:2px 10px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:20px}.dict-node .twisty{width:14px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;flex-shrink:0}.dict-node .twisty.placeholder{cursor:default}.dict-node .icon{width:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0}.dict-node.indent-1{padding-left:24px}.dict-node.indent-2{padding-left:42px}.dict-empty{padding:10px 14px;font-size:12px;color:var(--muted)}.props{padding:0 12px 14px}.props-empty{color:var(--muted);font-size:12px;padding:12px}.prop-group{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}.prop-group:last-child{border-bottom:0}.prop-group h3{font-size:10px;margin:8px 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.prop-row{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:6px;margin-bottom:4px}.prop-row label{font-size:12px;color:var(--muted)}.prop-row input,.prop-row select,.prop-row textarea{width:100%;padding:4px 6px;font:inherit;font-size:12px;border:1px solid var(--border);border-radius:2px;background:#fff}.prop-row textarea{min-height:56px;resize:vertical}.prop-row input[type=color]{padding:0;height:22px;cursor:pointer}.canvas-host{display:flex;flex-direction:column;background:var(--surface);min-height:0;position:relative}.page-tabs{display:flex;align-items:stretch;background:var(--surface-alt);border-bottom:1px solid var(--border);padding:4px 8px 0;gap:2px}.page-tab{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 4px;background:var(--surface);border:1px solid var(--border);border-bottom-color:transparent;border-top-left-radius:4px;border-top-right-radius:4px;font-size:12px;cursor:pointer;position:relative;top:1px}.page-tab.active{background:var(--bg-canvas);border-top:2px solid var(--accent);padding-top:4px}.page-tab-icon{color:var(--muted)}.page-tab-add{background:transparent;border:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;font-size:16px;margin-left:4px;border-radius:3px}.page-tab-add:hover:not(:disabled){background:var(--accent-tint);color:var(--accent-deep)}.page-tab-add:disabled{opacity:.4;cursor:not-allowed}.canvas-scroller{flex:1;overflow:auto;padding:12px 24px 24px;background:var(--bg-canvas)}.canvas-ruler-row{display:grid;grid-template-columns:28px 1fr}.canvas-ruler-corner{background:linear-gradient(to bottom right,#dee0e4,#b3b6bc);border-bottom:1px solid var(--border-strong);border-right:1px solid var(--border-strong)}.canvas-ruler-h,.canvas-ruler-v{background:#e7e9ec;position:relative;font-size:9px;color:#5a6373;overflow:hidden}.canvas-ruler-h{height:18px;border-bottom:1px solid var(--border-strong)}.canvas-ruler-v{width:28px;border-right:1px solid var(--border-strong)}.ruler-tick{position:absolute;font-size:9px;color:#5a6373;user-select:none}.ruler-tick.h{top:2px;transform:translate(-50%)}.ruler-tick.v{left:1px;transform:translateY(-50%);width:26px;text-align:center}.ruler-mark{position:absolute;background:#9aa1ab}.ruler-mark.h-major{width:1px;height:7px;bottom:0}.ruler-mark.h-minor{width:1px;height:4px;bottom:0;opacity:.6}.ruler-mark.v-major{height:1px;width:7px;right:0}.ruler-mark.v-minor{height:1px;width:4px;right:0;opacity:.6}.canvas-stage{position:relative}.canvas-page{background:#fff;background-image:linear-gradient(to right,rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.06) 1px,transparent 1px);background-size:35px 35px;box-shadow:0 1px #b1b5bb,0 5px 18px #0000002e;position:relative;margin:12px 0}.canvas-margin-guide{position:absolute;pointer-events:none;border:1px dashed #b5bcc7}.canvas-band{position:absolute;display:grid;grid-template-columns:18px 1fr;cursor:pointer;border-bottom:1px solid #cdd2da}.canvas-band:last-child{border-bottom:0}.canvas-band.selected .band-label{box-shadow:inset 0 0 0 2px var(--accent-deep)}.canvas-band.selected .band-body{background:#2080d00a}.canvas-band .band-label{display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--band-label-fg);letter-spacing:.03em;writing-mode:vertical-rl;transform:rotate(180deg);text-transform:uppercase;user-select:none;padding:4px 0;border-right:1px solid rgba(0,0,0,.18)}.band-label.kind-ReportTitle{background:var(--band-rtb)}.band-label.kind-PageHeader{background:var(--band-phb);color:#4a3a08}.band-label.kind-GroupHeader{background:var(--band-gh)}.band-label.kind-Data{background:var(--band-data)}.band-label.kind-GroupFooter{background:var(--band-gf)}.band-label.kind-ReportSummary{background:var(--band-rs)}.band-label.kind-PageFooter{background:var(--band-pfb);color:#4a3a08}.canvas-band .band-body{position:relative}.band-tag{position:absolute;top:2px;left:4px;font-size:9px;color:#5b6371;background:#ffffffb3;padding:0 4px;border-radius:2px;pointer-events:none;user-select:none}.canvas-component{position:absolute;border:1px solid rgba(0,0,0,.08);cursor:pointer;display:flex;overflow:hidden;background:#fff9;touch-action:none}.canvas-component:hover{border-color:#2080d099}.canvas-component.selected{outline:2px solid var(--selection);outline-offset:-1px;z-index:2}.canvas-component>span{width:100%;display:inline-block;padding:1px 3px}.resize-handle{position:absolute;width:8px;height:8px;background:#fff;border:1.5px solid var(--selection);z-index:3}.resize-handle.h-nw{left:-4px;top:-4px;cursor:nw-resize}.resize-handle.h-n{left:50%;top:-4px;transform:translate(-50%);cursor:ns-resize}.resize-handle.h-ne{right:-4px;top:-4px;cursor:ne-resize}.resize-handle.h-w{left:-4px;top:50%;transform:translateY(-50%);cursor:ew-resize}.resize-handle.h-e{right:-4px;top:50%;transform:translateY(-50%);cursor:ew-resize}.resize-handle.h-sw{left:-4px;bottom:-4px;cursor:sw-resize}.resize-handle.h-s{left:50%;bottom:-4px;transform:translate(-50%);cursor:ns-resize}.resize-handle.h-se{right:-4px;bottom:-4px;cursor:se-resize}.band-resize-handle{position:absolute;left:0;right:0;bottom:-3px;height:6px;cursor:ns-resize;z-index:2;touch-action:none}.band-resize-handle:hover{background:#2080d04d}.status-bar{display:flex;align-items:stretch;background:var(--chrome-navy);color:var(--chrome-navy-text);height:28px;user-select:none}.status-item{display:inline-flex;align-items:center;gap:6px;padding:0 12px;font-size:11.5px;color:#ffffffe6;border-right:1px solid rgba(255,255,255,.12)}.status-sample{height:20px;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:2px;font-size:11.5px;padding:0 4px}.status-sample option{color:var(--text);background:var(--surface)}.status-spacer{flex:1}.dirty-indicator{color:#ffffffbf}.status-dot{width:8px;height:8px;border-radius:50%;background:#4caf50;display:inline-block}.status-dot.dirty{background:var(--warning)}.status-tab{background:transparent;color:#ffffffd9;border:0;padding:0 14px;font-size:12px;cursor:pointer;border-left:1px solid rgba(255,255,255,.12)}.status-tab:hover{background:#ffffff14;color:#fff}.status-tab.active{background:var(--surface);color:var(--text);font-weight:600}.preview-host{flex:1;display:flex;flex-direction:column;background:var(--bg-canvas)}.preview-host iframe{flex:1;border:0;background:var(--bg-canvas)}.preview-error{padding:14px;color:var(--danger);font-family:ui-monospace,monospace;white-space:pre-wrap}
