@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{color-scheme:light;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--brand-50: oklch(.97 .01 5);--brand-100: oklch(.93 .03 5);--brand-200: oklch(.85 .07 5);--brand-300: oklch(.75 .13 5);--brand-400: oklch(.64 .19 5);--brand-500: oklch(.53 .22 5);--brand-600: oklch(.44 .2 5);--brand-700: oklch(.37 .17 5);--brand-800: oklch(.29 .13 5);--brand-900: oklch(.22 .09 5);--neutral-50: oklch(.98 .004 60);--neutral-100: oklch(.95 .006 60);--neutral-200: oklch(.9 .006 60);--neutral-300: oklch(.8 .007 60);--neutral-400: oklch(.65 .007 60);--neutral-500: oklch(.52 .007 60);--neutral-600: oklch(.41 .007 60);--neutral-700: oklch(.3 .007 60);--neutral-800: oklch(.22 .007 60);--neutral-900: oklch(.14 .007 60);--neutral-950: oklch(.1 .005 60);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 4px;--radius: 6px;--radius-card: 8px;--radius-panel: 12px;--radius-pill: 9999px;--header-h: 56px;--background: var(--neutral-50);--foreground: var(--neutral-800);--card: #ffffff;--card-foreground: var(--neutral-800);--muted: var(--neutral-100);--muted-foreground: var(--neutral-500);--border: var(--neutral-200);--primary: var(--brand-600);--primary-foreground: #ffffff;--primary-hover: var(--brand-700);--primary-text: var(--brand-600);--ring: var(--brand-500);--destructive: oklch(.55 .22 25);--success: oklch(.52 .17 145);--warning: oklch(.6 .17 75)}:root[data-theme=dark]{color-scheme:dark;--background: var(--neutral-900);--foreground: var(--neutral-50);--card: var(--neutral-800);--card-foreground: var(--neutral-50);--muted: var(--neutral-800);--muted-foreground: var(--neutral-400);--border: var(--neutral-700);--primary: var(--brand-500);--primary-foreground: #ffffff;--primary-hover: var(--brand-600);--primary-text: var(--brand-300);--ring: var(--brand-400);--destructive: oklch(.65 .2 25);--success: oklch(.62 .17 145);--warning: oklch(.7 .16 75)}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-sans);-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;background:var(--background);color:var(--foreground);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,p{margin:0}h1{font-size:1.875rem;font-weight:700;line-height:1.2}h2{font-size:1.25rem;font-weight:600;line-height:1.4}a{color:var(--primary-text)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-4);top:-100px;z-index:100;padding:var(--space-2) var(--space-3);background:var(--primary);color:var(--primary-foreground);border-radius:var(--radius)}.skip-link:focus{top:var(--space-2)}.muted{color:var(--muted-foreground)}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--space-3);height:var(--header-h);padding:0 var(--space-4);background:var(--card);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:1rem;color:var(--foreground);text-decoration:none}.org-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-foreground);padding-left:var(--space-3);border-left:1px solid var(--border)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.user-email{max-width:24ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-foreground);font-size:.8125rem}.button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-3);border-radius:var(--radius);border:1px solid transparent;font:inherit;font-weight:500;cursor:pointer;transition:background-color .12s ease-out,color .12s ease-out}.button--primary{background:var(--primary);color:var(--primary-foreground)}.button--primary:hover{background:var(--primary-hover)}.button--ghost{background:transparent;color:var(--foreground);border-color:var(--border)}.button--ghost:hover{background:var(--muted)}.button[aria-disabled=true]{cursor:not-allowed}.button[aria-disabled=true]:hover{background:var(--primary)}.main{max-width:1280px;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-12)}.main:focus{outline:none}.page{display:flex;flex-direction:column;gap:var(--space-4)}.breadcrumb a{font-size:.8125rem}.card{background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius-card)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-card);border:1px solid var(--border);border-left:4px solid var(--warning);background:var(--card);color:var(--card-foreground);font-size:.8125rem}.message-card{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}.session-card{max-width:36rem;margin:var(--space-6) auto 0;width:100%}.screen-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.status-chip{display:inline-block;align-self:flex-start;padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:.75rem;font-weight:500;line-height:1.6;background:var(--muted);color:var(--muted-foreground);border:1px solid var(--border)}.status-chip--published{color:var(--success)}.dashboard-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:var(--space-4)}.dashboard-list-item{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}.dashboard-link{font-size:1rem;font-weight:600}.dashboard{display:flex;flex-direction:column;gap:var(--space-4)}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.dashboard-description{margin-top:var(--space-1);color:var(--muted-foreground)}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.filter-bar label{font-weight:500}.filter-bar select{min-height:40px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--card-foreground);font:inherit}.filter-range{color:var(--muted-foreground);font-size:.8125rem;font-variant-numeric:tabular-nums}.grid-container{min-width:0}.grid-item{display:flex}.grid-item>.card{flex:1;min-width:0}.react-grid-layout{transition:none}.visual{display:flex;flex-direction:column;padding:var(--space-4);gap:var(--space-2);overflow:hidden}.visual-header{min-width:0}.visual-title{font-size:1rem;font-weight:600;line-height:1.4}.visual-description{color:var(--muted-foreground);font-size:.8125rem}.visual-body{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.chart{flex:1;min-height:0;width:100%}.chart-note{color:var(--muted-foreground);font-size:.75rem}.visual-state{flex:1;display:flex;align-items:center;justify-content:center;min-height:48px}.visual-message{color:var(--muted-foreground);font-size:.8125rem;padding:var(--space-3)}.visual-state--error .visual-message{color:var(--destructive)}.error-card{padding:var(--space-5);border-left:4px solid var(--destructive);display:flex;flex-direction:column;gap:var(--space-2)}.error-card ul{margin:0;padding-left:var(--space-5)}.error-card code{font-family:var(--font-mono);font-size:.8125rem;overflow-wrap:anywhere}.skeleton{display:block;width:100%;height:100%;min-height:48px;border-radius:var(--radius);background:var(--muted);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}.button{transition:none}}.kpi{flex:1;display:flex;flex-direction:column;min-height:0}.kpi-value{font-size:1.875rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.kpi-change{font-size:.8125rem;font-weight:500;font-variant-numeric:tabular-nums}.kpi-change--up{color:var(--success)}.kpi-change--down{color:var(--destructive)}.kpi-change--flat{color:var(--muted-foreground)}.kpi-change-context{color:var(--muted-foreground);font-weight:400}.sparkline{flex:1;min-height:0;width:100%;margin-top:var(--space-1)}.table-scroll{flex:1;min-height:0;overflow:auto;border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse;font-size:.8125rem;font-variant-numeric:tabular-nums}.data-table th,.data-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.data-table thead th{position:sticky;top:0;background:var(--card);font-weight:600;color:var(--muted-foreground);padding:0}.data-table .num{text-align:right}.sort-button{display:inline-flex;align-items:center;gap:var(--space-1);width:100%;min-height:36px;padding:var(--space-2) var(--space-3);border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.num .sort-button{justify-content:flex-end}.sort-indicator{min-width:1ch;font-size:.625rem}@media(max-width:639px){.main{padding:var(--space-4) var(--space-4) var(--space-10)}h1{font-size:1.5rem}.button-label{display:none}.user-email{max-width:11ch}.app-header{gap:var(--space-2)}}
