.grid-stack{position:relative}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;width:auto;margin:0;position:absolute;z-index:0!important}.grid-stack>.grid-stack-item{width:var(--gs-column-width);height:var(--gs-cell-height);padding:0;position:absolute;top:0}.grid-stack>.grid-stack-item>.grid-stack-item-content{width:auto;margin:0;position:absolute;overflow:hidden auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item{right:0}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-select:none;user-select:none;z-index:100;font-size:.1px;display:block;position:absolute}.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{z-index:101;background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"%23666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 20 20\"><path d=\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\"/></svg>");background-position:50%;background-repeat:no-repeat}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,right,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.grid-stack-item.ui-draggable-armed{cursor:move;animation:.25s ease-in-out infinite gs-armed-wiggle}.grid-stack-item>.ui-resizable-handle.ui-resizable-armed{animation:.5s ease-in-out infinite gs-armed-pulse}@keyframes gs-armed-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-1.5deg)}75%{transform:rotate(1.5deg)}}@keyframes gs-armed-pulse{0%,to{opacity:1}50%{opacity:.3}}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{opacity:.8;box-shadow:1px 4px 6px #0003}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,right .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing{transition:left,right,top,height,width}.grid-stack>.grid-stack-item[gs-y="0"]{top:0}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item[gs-x="0"]{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item[gs-x="0"]{right:0}.gs-print-show{display:none}@media print{@page gs-landscape{size:landscape}@page gs-portrait{size:portrait}.grid-stack{height:auto!important;display:block!important;position:static!important}.grid-stack>.grid-stack-item{float:left!important;height:auto!important;width:calc(100% * var(--gs-w)/ var(--gs-columns,12))!important;break-inside:avoid!important;page-break-inside:avoid!important;display:block!important;position:static!important;top:auto!important;left:auto!important}.grid-stack>.grid-stack-item>.grid-stack-item-content{white-space:normal!important;height:auto!important;margin-top:var(--gs-item-margin-top)!important;margin-right:var(--gs-item-margin-right)!important;margin-bottom:var(--gs-item-margin-bottom)!important;margin-left:var(--gs-item-margin-left)!important;position:relative!important;inset:auto!important;overflow:visible!important}.gs-print-hide{display:none}.gs-print-show{display:block}.gs-print-avoid-break-after{break-after:avoid!important;page-break-after:avoid!important}.grid-stack>.grid-stack-item.gs-print-hide{display:none!important}.grid-stack>.grid-stack-item[gs-page-break=true],.grid-stack>.grid-stack-item[gs-print-orientation]{float:none!important;clear:both!important}.grid-stack>.grid-stack-item[gs-page-break=true]{page-break-before:always!important;break-before:page!important}.grid-stack>.grid-stack-item[gs-print-orientation=landscape]{page:gs-landscape;min-width:calc(100vmax * var(--gs-w)/ var(--gs-columns,12))!important}.grid-stack>.grid-stack-item[gs-print-orientation=portrait]{page:gs-portrait;min-width:calc(100vmin * var(--gs-w)/ var(--gs-columns,12))!important}.grid-stack>.grid-stack-item[gs-break-inside=true]{float:none!important;clear:both!important;break-inside:auto!important;page-break-inside:auto!important;width:100%!important}.grid-stack>.grid-stack-item>.ui-resizable-handle{display:none!important}}:root{--oy-yellow:#fefd28;--oy-dark:#1d1d1b;--radius:12px;--radius-sm:8px;--page:#f3f3f0;--surface:#fff;--surface-2:#f8f8f6;--ink:#1d1d1b;--ink-2:#52514e;--ink-3:#6f6e69;--line:#e1e0d9;--line-2:#ecebe6;--border:#1d1d1b1a;--shadow:0 1px 2px #1d1d1b0f, 0 4px 14px #1d1d1b0d;--focus:#2a78d6;--st-selected:#fefd28;--st-possible:#fff;--st-alternative:#e4e3dd;--st-excluded:#a9a8a2;--st-excluded-ink:#2b2b29;--good:#006300;--bad:#b8322f;--font:Moderat, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.4}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-3)}.small{font-size:12px}.btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;height:32px;padding:0 12px;font-weight:500;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--oy-dark);border-color:var(--oy-dark);color:#fff}.btn-primary:hover{background:#33332f}.btn-ghost{background:0 0;border-color:#0000}.btn-small{height:28px;padding:0 10px;font-size:13px}.icon-btn{width:28px;height:28px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:inline-grid}.icon-btn:hover:not(:disabled){color:var(--ink);background:#1d1d1b12}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.danger:hover{color:var(--bad)}.spinner{border:2px solid #1d1d1b26;border-top-color:var(--oy-dark);vertical-align:-2px;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}.spinner.small{width:12px;height:12px}@keyframes spin{to{transform:rotate(360deg)}}.splash{text-align:center;background:var(--oy-dark);color:#fff;place-content:center;gap:18px;height:100%;display:grid}.splash .spinner{border-color:#fff3;border-top-color:var(--oy-yellow)}.splash-msg{color:#d8d7d0}.splash-error{color:#ffb4a8;max-width:560px}.app{flex-direction:column;height:100%;display:flex}.main{flex:1;min-height:0;overflow:auto}.topbar{background:var(--oy-dark);color:#fff;flex-shrink:0;align-items:center;gap:10px;height:52px;padding:0 14px;display:flex}.brand{white-space:nowrap;color:#fff;cursor:pointer;letter-spacing:.01em;background:0 0;border:0;border-radius:6px;flex-shrink:0;align-items:baseline;gap:6px;padding:4px 6px;font-size:16px;display:inline-flex}.brand-oy{font-weight:800}.brand-an{color:var(--oy-yellow);font-weight:500}.brand-big{font-size:30px}.crumb{color:#d8d7d0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar-spacer{flex:1}.topbar-info{color:#b9b8b0;white-space:nowrap;font-size:12px}.topbar-btn{border-radius:var(--radius-sm);color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff29;align-items:center;gap:6px;height:32px;padding:0 10px;font-size:13px;display:inline-flex}.topbar-btn:hover{background:#ffffff14}.perf{position:relative}.perf-btn{font-variant-numeric:tabular-nums;min-width:84px}.perf-btn.ok svg{color:var(--oy-yellow)}.perf-btn.slow{border-color:#ec835a}.perf-btn.slow svg{color:#ec835a}.popover{z-index:200;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:380px;color:var(--ink);padding:12px 14px;position:absolute;top:40px;right:0;box-shadow:0 12px 32px #1d1d1b2e}.popover header{justify-content:space-between;align-items:center;display:flex}.kv{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.kv th{text-align:left;color:var(--ink-2);white-space:nowrap;padding:3px 8px 3px 0;font-weight:500}.kv td{font-variant-numeric:tabular-nums}.perf-actions{flex-wrap:wrap;gap:8px;display:flex}.bench{border-radius:var(--radius-sm);margin:10px 0 0;padding:8px 10px;font-size:13px}.bench.ok{color:var(--good);background:#e9f5e9}.bench.slow{color:var(--bad);background:#fdeceb}.selbar{background:var(--surface);border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:10px;min-height:46px;padding:6px 12px;display:flex}.selbar-nav{border-right:1px solid var(--line);gap:2px;padding-right:8px;display:flex}.selbar-chips{flex-wrap:wrap;flex:1;gap:6px;min-width:0;display:flex}.selbar-hint{color:var(--ink-3);font-size:13px}.chip{background:var(--st-selected);border-radius:8px;align-items:center;gap:6px;max-width:340px;height:30px;padding:0 4px 0 10px;font-size:13px;display:inline-flex;box-shadow:inset 0 0 0 1px #1d1d1b2e}.chip-field{white-space:nowrap;font-weight:600}.chip-values{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chip-x{cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;width:22px;height:22px;display:grid}.chip-x:hover{background:#1d1d1b1f}.state-legend{color:var(--ink-2);white-space:nowrap;gap:12px;font-size:12px;display:flex}.state-legend span,.help-states li{align-items:center;gap:5px;display:inline-flex}.state-legend i,.help-states i{border-radius:3px;width:12px;height:12px;display:inline-block;box-shadow:inset 0 0 0 1px #1d1d1b40}i.st-selected{background:var(--st-selected)}i.st-possible{background:var(--st-possible)}i.st-alternative{background:var(--st-alternative)}i.st-excluded{background:var(--st-excluded)}.home{max-width:1200px;margin:0 auto;padding:28px 20px 40px}.home-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.home-head h1{margin:0 0 4px;font-size:26px}.home-head p{margin:0}.home-actions{flex-wrap:wrap;gap:8px;display:flex}.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.card-main{text-align:left;cursor:pointer;border:0;border-top:4px solid var(--oy-yellow);background:0 0;flex-direction:column;flex:1;gap:6px;padding:16px;display:flex}.card-main:hover h2{text-decoration:underline}.card-kicker{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-size:11px}.card h2{margin:0;font-size:17px}.card p{color:var(--ink-2);margin:0}.card-meta{color:var(--ink-3);margin-top:auto;padding-top:8px;font-size:12px}.card-actions{border-top:1px solid var(--line-2);justify-content:flex-end;gap:2px;padding:4px 8px;display:flex}.home-foot{margin-top:24px;font-size:12px}.empty-state{text-align:center;padding:40px}.dash{flex-direction:column;height:100%;display:flex}.pagebar{flex-shrink:0;align-items:center;gap:8px;padding:6px 12px 0;display:flex}.pages{flex:1;align-items:center;gap:2px;min-width:0;display:flex;overflow-x:auto}.page-tab{border-radius:8px 8px 0 0;align-items:center;display:inline-flex}.page-tab>button:first-child{cursor:pointer;height:34px;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:0 14px;font-weight:500}.page-tab.active>button:first-child{color:var(--ink);border-bottom-color:var(--oy-dark)}.page-del{width:22px;height:22px}.page-rename{border:1px solid var(--focus);border-radius:6px;width:180px;height:30px;padding:0 8px}.pagebar-actions{gap:6px;display:flex}.dash-body{flex:1;min-height:0;display:flex}.canvas{flex:1;min-width:0;padding:4px 6px 24px;position:relative;overflow:auto}.canvas-empty{border:2px dashed var(--line);border-radius:var(--radius);text-align:center;max-width:460px;color:var(--ink-3);margin:30px auto;padding:24px}.grid-stack{min-height:400px}.grid-stack.is-editing{border-radius:var(--radius);background-image:linear-gradient(90deg,#1d1d1b09 1px,#0000 1px);background-size:4.16667% 100%}.grid-stack-item-content{overflow:visible!important}.grid-stack-placeholder>.placeholder-content{border-radius:var(--radius);border:2px dashed var(--oy-dark)!important;background:#fefd2859!important}.obj{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:100%;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.obj.is-editing .obj-head{cursor:move}.obj.is-selected{box-shadow:0 0 0 2px var(--oy-dark), var(--shadow)}.obj-head{align-items:flex-start;gap:6px;min-height:34px;padding:9px 8px 2px 14px;display:flex}.obj-titles{flex:1;min-width:0}.obj-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13.5px;font-weight:600;overflow:hidden}.obj-sub{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.obj-actions{opacity:0;gap:0;transition:opacity .12s;display:flex}.obj:hover .obj-actions,.obj:focus-within .obj-actions,.obj.is-editing .obj-actions{opacity:1}.obj-body{flex:1;min-height:0;padding:2px 8px 8px;position:relative}.obj-placeholder{text-align:center;height:100%;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:13px;display:flex}.obj-error code{color:var(--bad);max-height:80px;font-size:11px;overflow:auto}.is-refreshing{opacity:.55;transition:opacity .15s}.chart-wrap{flex-direction:column;height:100%;display:flex}.chart-body{flex:1;min-height:0}.chart-note{color:var(--ink-3);text-align:right;padding-top:2px;font-size:11px}.tt{min-width:140px}.tt-title{color:var(--ink-2);margin-bottom:4px;font-weight:600}.tt-row{grid-template-columns:14px auto 1fr;align-items:center;gap:6px;line-height:1.6;display:grid}.tt-key{border-radius:2px;width:12px;height:3px}.tt-val{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}.tt-name{color:var(--ink-2)}.kpi{flex-direction:column;justify-content:space-between;height:100%;padding:0 6px 2px;display:flex}.kpi-value{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:8px;font-size:28px;font-weight:600;line-height:1.1;display:flex}.kpi-delta{white-space:nowrap;align-items:center;gap:4px;font-size:12.5px;display:flex;overflow:hidden}.kpi-delta-value{font-weight:600}.kpi-delta-label{color:var(--ink-3);text-overflow:ellipsis;overflow:hidden}.kpi-foot{justify-content:space-between;align-items:flex-end;gap:6px;display:flex}.kpi-period{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.sparkline{flex-shrink:0}.status{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:18px;height:18px;display:inline-grid}.status-good{background:#0ca30c}.status-warning{color:var(--oy-dark);background:#fab219}.status-critical{background:#d03b3b}.table-object{flex-direction:column;height:100%;display:flex}.tbl-wrap{border-radius:var(--radius-sm);flex:1;height:100%;min-height:0;overflow:auto}.tbl{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}.tbl.small{font-size:12.5px}.tbl th,.tbl td{border-bottom:1px solid var(--line-2);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:340px;padding:5px 10px;overflow:hidden}.tbl thead th{z-index:2;background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--ink-2);white-space:normal;vertical-align:bottom;min-width:92px;font-weight:600;line-height:1.25;position:sticky;top:0;overflow:visible}.tbl td{max-width:250px}.tbl th.num,.tbl td.num{max-width:150px}.tbl tfoot td{background:var(--surface-2);border-top:1px solid var(--line);font-weight:700;position:sticky;bottom:0}.tbl .num{text-align:right;font-variant-numeric:tabular-nums}.tbl tbody tr:hover td,.tbl tbody tr:hover th{background:#fafaf2}.th-sort{cursor:pointer;max-width:100%;color:inherit;background:0 0;border:0;padding:0;font-weight:600;display:inline-block}.num .th-sort{text-align:right;justify-content:flex-end;width:100%}.sort-ind{width:8px;font-size:9px}.cell-link{cursor:pointer;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;padding:0;overflow:hidden}.cell-link:hover{background:var(--oy-yellow);border-radius:3px}.cell-num{align-items:center;gap:6px;display:inline-flex}.pivot th[scope=row]{z-index:1;background:var(--surface);font-weight:400;position:sticky;left:0}.pivot thead th.pivot-corner{z-index:3;left:0}.pivot-subtotal th,.pivot-subtotal td{background:#fafaf7;font-weight:600}.pivot-total th,.pivot-total td{border-top:1px solid var(--line);font-weight:700;background:var(--surface-2)!important}.pivot-total-col{background:#fafaf7;font-weight:600}.pivot-measure{font-size:11.5px;font-weight:500!important}.filter-pane{flex-direction:column;gap:8px;height:100%;display:flex;overflow:auto}.listbox{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;flex:120px;min-height:120px;display:flex;overflow:hidden}.listbox-head{background:var(--surface-2);border-bottom:1px solid var(--line);align-items:center;gap:6px;min-height:32px;padding:2px 2px 2px 10px;display:flex}.listbox-title{flex:1;font-size:12.5px;font-weight:600}.listbox-count{background:var(--oy-yellow);text-align:center;border-radius:9px;min-width:20px;height:18px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px;box-shadow:inset 0 0 0 1px #1d1d1b33}.listbox-tools{display:flex}.listbox-search{border:1px solid var(--line);border-radius:6px;height:28px;margin:4px;padding:0 8px}.listbox-values{flex:1;min-height:0;position:relative;overflow:auto}.lb-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid #1d1d1b12;align-items:center;gap:8px;padding:0 10px;font-size:12.5px;display:flex;position:absolute;top:0;left:0;right:0}.lb-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.lb-freq{font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:11px}.lb-row.st-selected{background:var(--st-selected);font-weight:600}.lb-row.st-possible{background:var(--st-possible)}.lb-row.st-possible:hover{background:#fffee0}.lb-row.st-alternative{background:var(--st-alternative)}.lb-row.st-excluded{background:var(--st-excluded);color:var(--st-excluded-ink)}.lb-row.st-excluded .lb-freq,.lb-row.st-alternative .lb-freq{color:#4a4a46}.lb-empty{color:var(--ink-3);padding:10px;font-size:12px}.sidebar,.props{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:264px;min-height:0;display:flex}.props{border-right:0;border-left:1px solid var(--line);width:300px}.sidebar-tabs{gap:2px;padding:8px 8px 0;display:flex}.sidebar-tabs button{cursor:pointer;height:32px;color:var(--ink-2);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;font-weight:500}.sidebar-tabs button.active{color:var(--ink);border-bottom-color:var(--oy-dark)}.sidebar-search{border:1px solid var(--line);height:30px;color:var(--ink-3);border-radius:6px;align-items:center;gap:6px;margin:8px;padding:0 8px;display:flex}.sidebar-search input{border:0;outline:0;flex:1;min-width:0}.sidebar-list{flex:1;padding:0 8px 8px;overflow:auto}.sidebar-hint{color:var(--ink-3);border-top:1px solid var(--line-2);margin:0;padding:8px 12px 10px;font-size:11.5px}.palette-group{margin-bottom:10px}.palette-group-title{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:6px 4px 4px;font-size:11px;font-weight:700}.palette-item{border:1px solid var(--line);background:var(--surface);cursor:grab;border-radius:7px;align-items:center;gap:6px;height:32px;margin-bottom:3px;padding:0 2px 0 6px;font-size:13px;display:flex;width:auto!important}.palette-item:hover{border-color:var(--oy-dark)}.palette-drag{color:#b3b2ab;display:grid}.palette-badge{min-width:22px;color:var(--ink-3);text-align:center;font-size:10.5px;font-weight:700}.palette-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}body>.palette-item{z-index:1000;box-shadow:0 8px 20px #1d1d1b33;width:220px!important}.grid-stack>.palette-item{border-radius:var(--radius);height:auto}.props-head{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;padding:10px 10px 6px 14px;display:flex}.props-body{flex:1;padding:6px 12px 20px;overflow:auto}.props-section{border-bottom:1px solid var(--line-2);padding:8px 0 10px}.props-section h4{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin:2px 0 8px;font-size:11px}.props-row{color:var(--ink-2);gap:3px;margin-bottom:8px;font-size:12px;display:grid}.props input:not([type=checkbox]):not([type=radio]),.props select{border:1px solid var(--line);background:var(--surface);width:100%;height:30px;color:var(--ink);border-radius:6px;min-width:0;padding:0 6px;font-size:13px}.props-check{cursor:pointer;align-items:center;gap:8px;margin:4px 0;font-size:13px;display:flex}.props-list{gap:6px;display:grid}.props-item{border:1px solid var(--line-2);background:var(--surface-2);border-radius:7px;gap:4px;padding:6px;display:grid}.props-item-label{color:var(--ink-3);font-size:11px}.props-item-tools{justify-content:flex-end;display:flex}.props-item-tools .icon-btn{width:24px;height:24px}.props-inline{gap:4px;display:flex}.props-inline input{width:64px!important}.props-add{color:var(--ink-3);align-items:center;gap:6px;display:flex}.props-filter{justify-content:space-between;align-items:center;gap:6px;font-size:12.5px;display:flex}.modal-backdrop{z-index:500;background:#1d1d1b73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border-radius:var(--radius);background:var(--surface);width:min(760px,100%);max-height:100%;color:var(--ink);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.modal-full{width:min(1400px,100%);height:min(900px,100%)}.modal-head{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;padding:12px 14px 10px 18px;display:flex}.modal-body{flex:1;min-height:0;padding:14px 18px 18px;overflow:auto}.modal-full .modal-body{overflow:hidden}.modal-body h4{margin:18px 0 6px}.help ul{margin:6px 0;padding-left:18px}.help li{margin:4px 0}.help-states{gap:4px;list-style:none;display:grid;padding-left:0!important}.scale-options{gap:4px;display:grid}@media (max-width:900px){.state-legend,.topbar-info,.hide-sm{display:none}}@media (max-width:700px){.sidebar,.props{z-index:300;position:fixed;top:0;bottom:0;box-shadow:0 0 30px #00000040}.props{right:0}.crumb,.pagebar-actions .btn-ghost{display:none}}.app-body{flex-direction:column;flex:1;min-height:0;display:flex}.user-menu{color:#b9b8b0;align-items:center;gap:6px;font-size:12px;display:inline-flex}.user-menu select{border-radius:var(--radius-sm);color:#fff;background:0 0;border:1px solid #ffffff29;max-width:230px;height:32px;padding:0 6px;font-size:13px}.user-menu option{color:var(--ink)}.home-role{margin:-8px 0 14px}.no-access{color:var(--ink-2);justify-items:center;gap:6px;display:grid}.no-access h2{margin:4px 0 0}.admin{max-width:1200px;margin:0 auto;padding:24px 20px 40px}.admin h1{margin:0 0 12px;font-size:26px}.admin h2{margin:0 0 8px;font-size:16px}.notice{border-radius:var(--radius-sm);background:#fffde0;padding:10px 14px;font-size:13px;box-shadow:inset 0 0 0 1px #1d1d1b26}.admin-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-top:16px;padding:14px 16px}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;display:grid}.admin-grid .admin-section{margin-top:16px}.admin-form{flex-wrap:wrap;gap:8px;display:flex}.admin-form input,.admin-form select,.admin-users select{border:1px solid var(--line);background:var(--surface);border-radius:6px;min-width:0;height:32px;padding:0 8px}.admin-form input,.admin-form select:first-child{flex:200px}.admin-users .tbl td,.admin-users .tbl th{max-width:none;overflow:visible}.admin-error{color:var(--bad);background:#fdeceb;border-radius:6px;margin:0 0 8px;padding:6px 10px;font-size:13px}.roles th{white-space:nowrap;width:140px}.roles td{white-space:normal}.user-name{align-items:center;gap:6px;font-weight:600;display:flex}.badge{background:var(--oy-yellow);border-radius:9px;padding:0 6px;font-size:11px;font-weight:700;box-shadow:inset 0 0 0 1px #1d1d1b33}.modal-small{width:min(520px,100%)}.share-list{gap:2px;max-height:280px;margin:6px 0 0 24px;display:grid;overflow:auto}.props-check.disabled{opacity:.5}.modal-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}
