.mosaic-screen{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:clamp(10px,1.6vw,24px);gap:12px}.mosaic-grid{flex:1 1;display:grid;grid-template-columns:repeat(24,minmax(0,1fr));grid-template-rows:repeat(16,minmax(0,1fr));grid-gap:clamp(6px,.8vw,14px);gap:clamp(6px,.8vw,14px);min-height:0}.mosaic-card{background:var(--surface);border:.5px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm,0 1px 2px rgba(0,0,0,.05));padding:clamp(10px,1.2vw,20px);display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;container-type:size}.mosaic-card--error{border-color:var(--red-soft);background:var(--red-soft)}.mosaic-card--text{align-items:center;justify-content:center;text-align:center;background:var(--surface-2)}.mosaic-card-head{font-size:clamp(.72rem,1.1vw,1rem);font-weight:600;letter-spacing:.01em;color:var(--muted);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mosaic-card-headrow{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.mosaic-card-headrow .mosaic-card-head{flex:1 1;min-width:0}.mosaic-card-head-sub{font-size:clamp(.66rem,.9vw,.9rem);color:var(--muted);white-space:nowrap}.mosaic-card-head-value{font-size:clamp(.9rem,1.4vw,1.4rem);font-weight:700;color:var(--ink);white-space:nowrap}@container (min-width: 0px){.mosaic-number-value{font-size:clamp(1.1rem,34cqmin,4.6rem)}.mosaic-clock-time{font-size:clamp(1.4rem,40cqmin,6rem)}.mosaic-text-title{font-size:clamp(1rem,20cqmin,3rem)}}.mosaic-chart{flex:1 1;min-height:0;margin-top:6px}.mosaic-number{display:flex;flex-direction:column;height:100%;gap:6px}.mosaic-number-value{flex:1 1;display:flex;align-items:center;font-size:clamp(1.8rem,5vw,4.2rem);font-weight:700;line-height:1.02;letter-spacing:-.02em;color:var(--ink);word-break:break-word}.mosaic-number-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.mosaic-number-sub{font-size:clamp(.72rem,1.1vw,1.05rem);color:var(--muted)}.mosaic-tone-ok{color:var(--green)}.mosaic-tone-warn{color:var(--amber)}.mosaic-tone-danger{color:var(--red)}.mosaic-delta{font-size:clamp(.7rem,1vw,1rem);font-weight:600;padding:2px 8px;border-radius:999px}.mosaic-delta--up{color:var(--green);background:var(--green-soft)}.mosaic-delta--down{color:var(--red);background:var(--red-soft)}.mosaic-delta--flat{color:var(--muted);background:var(--surface-2)}.mosaic-donut{flex:1 1;display:flex;gap:12px;align-items:center;min-height:0;margin-top:8px}.mosaic-donut-chart{position:relative;flex:0 0 42%;aspect-ratio:1/1;max-height:100%}.mosaic-donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.mosaic-donut-center-value{font-size:clamp(1.2rem,2.6vw,2.4rem);font-weight:700;color:var(--ink);line-height:1}.mosaic-donut-center-sub{font-size:clamp(.6rem,.9vw,.85rem);color:var(--muted)}.mosaic-donut-legend{flex:1 1;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;min-width:0}.mosaic-donut-legend li,.mosaic-list li{display:flex;align-items:center;gap:8px;font-size:clamp(.72rem,1.1vw,1.05rem);color:var(--ink);min-width:0}.mosaic-legend-name,.mosaic-list-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:8px}.mosaic-legend-value,.mosaic-list-value{font-weight:600;color:var(--muted);white-space:nowrap}.mosaic-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.mosaic-list{list-style:none;margin:8px 0 0;padding:0;gap:8px;overflow:hidden}.mosaic-clock,.mosaic-list{flex:1 1;display:flex;flex-direction:column}.mosaic-clock{align-items:center;justify-content:center;gap:6px}.mosaic-clock-time{font-size:clamp(2rem,6vw,5rem);font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mosaic-clock-date{font-size:clamp(.8rem,1.4vw,1.4rem);color:var(--muted);text-transform:capitalize}.mosaic-text{display:flex;flex-direction:column;gap:6px}.mosaic-text-title{font-size:clamp(1rem,2.4vw,2.2rem);font-weight:700;color:var(--ink)}.mosaic-text-body{font-size:clamp(.85rem,1.6vw,1.4rem);color:var(--ink-2)}.mosaic-empty,.mosaic-error-msg{flex:1 1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:clamp(.8rem,1.2vw,1.1rem);text-align:center}.mosaic-error-msg{color:var(--red)}.mosaic-screen-empty{flex:1 1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:clamp(1rem,2vw,1.6rem);text-align:center;padding:24px}.mosaic-table-wrap{flex:1 1;min-height:0;overflow:hidden;margin-top:6px}.mosaic-table{width:100%;border-collapse:collapse;font-size:clamp(.72rem,1vw,1rem)}.mosaic-table thead th{text-align:right;font-size:clamp(.62rem,.85vw,.82rem);font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--muted);padding:4px 8px;border-bottom:.5px solid var(--line);white-space:nowrap}.mosaic-table td{text-align:right;padding:5px 8px;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;border-bottom:.5px solid var(--line-soft,var(--line))}.mosaic-table tr:last-child td{border-bottom:none}.mosaic-table .mosaic-table-first{text-align:left;overflow:hidden;text-overflow:ellipsis;max-width:0;width:60%}.mosaic-heatmap{flex:1 1;min-height:0;overflow:hidden;margin-top:6px;display:flex}.mosaic-heatmap-grid{flex:1 1;display:grid;grid-gap:2px;gap:2px;align-content:start;grid-auto-rows:minmax(0,1fr)}.mosaic-heatmap-corner{grid-column:1}.mosaic-heatmap-xlabel{font-size:clamp(.5rem,.75vw,.72rem);color:var(--muted);text-align:center;overflow:hidden}.mosaic-heatmap-ylabel{font-size:clamp(.55rem,.8vw,.78rem);color:var(--ink-2,var(--ink));padding-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center}.mosaic-heatmap-cell{border-radius:3px;min-height:10px;min-width:0}.mosaic-editor{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:20px;gap:20px;align-items:start}@media (max-width:900px){.mosaic-editor{grid-template-columns:1fr}}.mosaic-editor-preview{background:var(--bg);border:.5px solid var(--line);border-radius:18px;padding:14px;display:flex;position:-webkit-sticky;position:sticky;top:12px}.mosaic-canvas{position:relative;width:100%;aspect-ratio:16/9;border-radius:12px;overflow:hidden;touch-action:none}.mosaic-canvas-base{position:absolute;inset:0;display:flex;pointer-events:none}.mosaic-canvas-base .mosaic-grid{flex:1 1}.mosaic-canvas-gridlines{position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(to right,var(--line) 0,var(--line) .5px,transparent .5px,transparent calc(100% / 24)),repeating-linear-gradient(to bottom,var(--line) 0,var(--line) .5px,transparent .5px,transparent calc(100% / 16));opacity:.35}.mosaic-canvas-overlay{position:absolute;inset:0;width:100%;height:100%}.mosaic-handle{position:relative;border-radius:12px;cursor:-webkit-grab;cursor:grab;outline:none;border:1.5px solid transparent;transition:border-color .12s ease,background .12s ease}.mosaic-handle:hover{border-color:var(--blue,#0071e3);background:rgba(0,113,227,.06)}.mosaic-handle--selected{border-color:var(--blue,#0071e3);background:rgba(0,113,227,.08)}.mosaic-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.mosaic-handle-toolbar{position:absolute;top:4px;right:4px;display:none;gap:4px;z-index:2}.mosaic-handle--selected .mosaic-handle-toolbar,.mosaic-handle:hover .mosaic-handle-toolbar{display:flex}.mosaic-handle-btn{width:26px;height:26px;border-radius:7px;border:.5px solid var(--line);background:var(--surface);color:var(--ink-2,var(--ink));cursor:pointer;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm,0 1px 2px rgba(0,0,0,.12))}.mosaic-handle-btn:hover{background:var(--surface-2)}.mosaic-handle-resize{position:absolute;right:0;bottom:0;width:20px;height:20px;cursor:nwse-resize;border-radius:0 0 12px 0;z-index:2}.mosaic-handle-resize:after{content:"";position:absolute;right:4px;bottom:4px;width:9px;height:9px;border-right:2px solid var(--blue,#0071e3);border-bottom:2px solid var(--blue,#0071e3);opacity:0}.mosaic-handle--selected .mosaic-handle-resize:after,.mosaic-handle:hover .mosaic-handle-resize:after{opacity:.9}.mosaic-ghost{pointer-events:none;border-radius:12px;z-index:1}.mosaic-ghost--ok{background:rgba(26,140,58,.18);border:1.5px dashed var(--green,#1a8c3a)}.mosaic-ghost--bad{background:rgba(192,0,26,.16);border:1.5px dashed var(--red,#c0001a)}.mosaic-widget-row--active{border-color:var(--blue,#0071e3);box-shadow:0 0 0 1px var(--blue,#0071e3)}.mosaic-editor-panel{display:flex;flex-direction:column;gap:14px}.mosaic-editor-settings{display:flex;flex-direction:column;gap:12px;padding-top:14px;margin-top:4px;border-top:.5px solid var(--line)}.mosaic-widget-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:.5px solid var(--line);border-radius:12px;background:var(--surface)}.mosaic-widget-row-main{flex:1 1;min-width:0}.mosaic-widget-row-title{font-weight:600;font-size:.9rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mosaic-widget-row-meta{font-size:.78rem;color:var(--muted)}.mosaic-widget-row-actions{display:flex;gap:4px;align-items:center}.mosaic-icon-btn{border:.5px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:.9rem;display:inline-flex;align-items:center;justify-content:center}.mosaic-icon-btn:hover{background:var(--surface-2)}.mosaic-icon-btn:disabled{opacity:.4;cursor:not-allowed}.mosaic-preview-box{border:.5px solid var(--line);border-radius:12px;padding:12px;background:var(--bg);min-height:150px;display:flex}.mosaic-source-disabled{color:var(--amber);font-size:.8rem}