:root{--bg:#05070d;--panel:#0f1420;--panel-2:#151c2b;--panel-hover:#1a2335;--line:#222c3f;--line-strong:#33435f;--text:#d9e2ef;--muted:#8592a8;--topbar-bg:var(--panel);--topbar-text:var(--text);--topbar-muted:var(--muted);--topbar-hover:var(--panel-2);--topbar-line:var(--line);--accent:#4cc3e6;--accent-2:#2b7fa0;--accent-text:#04131a;--brand-1:var(--accent);--brand-2:var(--accent-2);--danger:#e05a5a;--badge-bg:#233049;--badge-text:var(--accent);--thumb-card:#0b101a;--input-bg:#0b101a;--menu-bg:#182133;--menu-line:#2a3750;--menu-hover:#22304a;--toast-bg:#1d2a40;--toast-line:#2c3d5c;--track:#1d2638;--shadow:#00000080;--viewport-bg:#000;--viewport-line:#1a2130;--viewport-empty:#4b5870;--overlay-text:#e8eef7;--orient-text:#f2d26a;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius:8px;--topbar-h:52px;--left-w:252px;--right-w:260px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;overflow:hidden}body{font:13px/1.35 var(--font);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}#app{flex-direction:column;height:100%;display:flex}.topbar{height:var(--topbar-h);background:var(--topbar-bg);color:var(--topbar-text);border-bottom:1px solid var(--topbar-line);flex:none;align-items:center;gap:10px;padding:0 8px;display:flex}.brand{flex:none;align-items:center;gap:8px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--brand-1), var(--brand-2));border-radius:6px;width:22px;height:22px}.brand-logo{object-fit:contain;max-width:180px;height:30px;display:block}.brand-name{letter-spacing:.2px;white-space:nowrap;font-weight:600}.toolbar{scrollbar-width:none;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;display:flex;overflow-x:auto}.toolbar::-webkit-scrollbar{display:none}.patient{text-align:right;flex:none;max-width:280px;overflow:hidden}.pt-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.pt-meta{color:var(--topbar-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.tb-btn,.icon-btn,.tb-caret{cursor:pointer;color:var(--topbar-text);background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.panel .icon-btn{color:var(--text)}.tb-btn{width:38px;height:38px}.tb-btn svg,.icon-btn svg{width:22px;height:22px}.tb-btn:hover:not(:disabled),.icon-btn:hover,.tb-caret:hover:not(:disabled){background:var(--topbar-hover)}.panel .icon-btn:hover{background:var(--panel-hover)}.tb-btn.active,.tb-btn.active:hover:not(:disabled){background:var(--accent);color:var(--accent-text)}.tb-btn.mode{box-shadow:inset 0 -2px 0 var(--accent)}.tb-btn.toggled{color:var(--accent);position:relative}.tb-btn.toggled:after{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:5px;right:5px}.tb-btn:disabled,.tb-caret:disabled{opacity:.35;cursor:default}.tb-split{flex:none;align-items:center;display:inline-flex}.tb-caret{width:16px;height:38px;margin-left:-3px}.tb-caret svg{width:16px;height:16px;color:var(--topbar-muted)}.tb-caret.open{background:var(--topbar-hover)}.tb-sep{background:var(--topbar-line);flex:none;width:1px;height:26px;margin:0 6px}.icon-btn{width:34px;height:34px}.icon-btn.small{width:26px;height:26px}.icon-btn.small svg{width:16px;height:16px}.text-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:12px}.text-btn:hover{text-decoration:underline}.workspace{flex:1;min-height:0;display:flex;position:relative}.panel{background:var(--panel);flex-direction:column;flex:none;min-height:0;transition:margin .18s;display:flex}.panel-left{width:var(--left-w);border-right:1px solid var(--line)}.panel-right{width:var(--right-w);border-left:1px solid var(--line)}body.hide-left .panel-left{margin-left:calc(-1 * var(--left-w))}body.hide-right .panel-right{margin-right:calc(-1 * var(--right-w))}.panel-title{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 12px;font-size:12px;display:flex}.study-list,.measure-list{flex:1;padding:6px;overflow-y:auto}.study{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel-2);margin-bottom:8px;overflow:hidden}.study-head{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:9px 10px;display:block}.study-head:hover{background:var(--panel-hover)}.study-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.study-date{font-weight:600}.study-desc{margin-top:3px}.study-meta{color:var(--muted);margin-top:2px;font-size:12px}.study-meta em{color:var(--accent);font-style:normal}.badge{background:var(--badge-bg);color:var(--badge-text);border-radius:4px;padding:1px 6px;font-size:11px}.study.collapsed .series-grid{display:none}.series-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 8px 8px;display:grid}.series{background:var(--thumb-card);color:var(--text);cursor:pointer;text-align:left;border:1px solid #0000;border-radius:6px;flex-direction:column;gap:3px;min-width:0;padding:4px;display:flex}.series:hover{border-color:var(--line-strong)}.series.shown{border-color:var(--accent-2)}.series.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.thumb{aspect-ratio:1;background:#000;border-radius:4px;position:relative;overflow:hidden}.thumb canvas{object-fit:contain;display:block;width:100%!important;height:100%!important}.thumb.no-thumb:after{content:"Anteprima non disponibile";color:var(--muted);text-align:center;place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.thumb .count,.thumb .mod{color:#fff;background:#000000b3;border-radius:3px;padding:0 4px;font-size:10px;position:absolute;bottom:3px}.thumb .count{right:3px}.thumb .mod{left:3px}.series-desc{white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.series-num{color:var(--muted);font-size:10.5px}.grid-wrap{background:var(--bg);flex:1;min-width:0;padding:3px;position:relative}.viewport-grid{gap:3px;width:100%;height:100%;display:grid}.pane{background:var(--viewport-bg);border:1px solid var(--viewport-line);border-radius:3px;min-width:0;min-height:0;position:relative;overflow:hidden}.pane.active{border-color:var(--accent)}.pane.kind-mpr{border-top:2px solid var(--mpr-color)}.pane.drop{outline:2px dashed var(--accent);outline-offset:-4px}.viewport-grid.maximized{grid-template-rows:1fr!important;grid-template-columns:1fr!important}.viewport-grid.maximized .pane:not(.maximized-pane){display:none}.vp-element{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.tile-grid{background:var(--viewport-line);grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:2px;display:grid;position:absolute;inset:0}.tile{background:var(--viewport-bg);min-width:0;min-height:0;position:relative;overflow:hidden}.tile.tile-empty .vp-element{visibility:hidden}.tile-label{color:var(--overlay-text);text-shadow:0 0 3px #000;pointer-events:none;font-size:11px;position:absolute;bottom:4px;left:6px}.pane.tiled .ov.bl,.pane.tiled .ov.tl div:not(:first-child),.pane.tiled .ov.tr div:not(:last-child){display:none}.vp-empty{color:var(--viewport-empty);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.vp-overlay{pointer-events:none;color:var(--overlay-text);text-shadow:0 0 3px #000,0 0 2px #000;font-size:12px;position:absolute;inset:0}.ov{white-space:nowrap;text-overflow:ellipsis;max-width:48%;position:absolute;overflow:hidden}.ov div{text-overflow:ellipsis;overflow:hidden}.ov.tl{top:6px;left:8px}.ov.tr{text-align:right;top:6px;right:8px}.ov.bl{bottom:6px;left:8px}.ov.br{text-align:right;bottom:6px;right:8px}.orient{color:var(--orient-text);font-size:13px;font-weight:600;position:absolute}.o-top{top:6px;left:50%;transform:translate(-50%)}.o-bottom{bottom:6px;left:50%;transform:translate(-50%)}.o-left{top:50%;left:8px;transform:translateY(-50%)}.o-right{top:50%;right:8px;transform:translateY(-50%)}.vp-loading{pointer-events:none;background:#00000073;place-items:center;display:grid;position:absolute;inset:0}.vp-loading.hidden{display:none}.vp-loading-box{text-align:center;width:min(240px,70%);color:var(--overlay-text);font-size:12px}.bar{background:var(--track);border-radius:2px;height:4px;margin-bottom:8px;overflow:hidden}.bar span{background:var(--accent);width:0;height:100%;transition:width .15s;display:block}.measure{cursor:pointer;border-radius:6px;align-items:flex-start;gap:8px;padding:8px;display:flex}.measure:hover{background:var(--panel-2)}.m-idx{background:var(--badge-bg);width:20px;height:20px;color:var(--badge-text);border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.m-body{flex:1;min-width:0}.m-title{font-weight:600}.m-values{color:var(--muted);margin-top:2px;font-size:12px}.empty-note{color:var(--muted);padding:12px 8px;font-size:12.5px}.menu{z-index:50;background:var(--menu-bg);min-width:200px;color:var(--text);border:1px solid var(--menu-line);border-radius:var(--radius);box-shadow:0 10px 30px var(--shadow);font-family:var(--font);padding:4px;position:fixed;overflow-y:auto}.menu-item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:10px;width:100%;padding:7px 10px;display:flex}.menu-item:hover:not(:disabled){background:var(--menu-hover)}.menu-item:disabled{opacity:.4;cursor:default}.menu-item.checked{color:var(--accent)}.menu-item.checked .mi-label:after{content:" ✓"}.mi-icon svg{width:18px;height:18px;display:block}.mi-label{flex:1}.mi-hint{color:var(--muted);font-size:11px}.menu-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:6px 10px 3px;font-size:11px}.menu-sep{background:var(--menu-line);height:1px;margin:4px 2px}.modal-backdrop{z-index:60;background:#00000080;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--panel-2);color:var(--text);border:1px solid var(--menu-line);border-radius:var(--radius);flex-direction:column;gap:10px;width:min(360px,92vw);padding:16px;display:flex}.modal-title{font-weight:600}.modal input{background:var(--input-bg);border:1px solid var(--menu-line);color:var(--text);font:inherit;border-radius:6px;padding:8px 10px}.modal input:focus{outline:2px solid var(--accent);outline-offset:-1px}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.btn{cursor:pointer;border:0;border-radius:6px;padding:7px 14px}.btn.primary{background:var(--accent);color:var(--accent-text);font-weight:600}.btn.ghost{color:var(--text);background:0 0}.toast{background:var(--toast-bg);color:var(--text);border:1px solid var(--toast-line);opacity:0;pointer-events:none;z-index:70;border-radius:8px;max-width:90vw;padding:10px 16px;transition:all .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.splash{background:var(--bg);z-index:100;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.splash.hidden{display:none}.spinner{border:3px solid var(--track);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-box{text-align:center;max-width:420px;padding:20px}.error-box h1{color:var(--text);margin:0 0 8px;font-size:20px}@media (max-width:820px){.brand-name,.brand-mark,.brand-logo,.patient .pt-meta{display:none}.patient{max-width:120px;font-size:12px}.panel-left{z-index:20;box-shadow:4px 0 20px var(--shadow);position:absolute;top:0;bottom:0;left:0}.panel-right{z-index:20;box-shadow:-4px 0 20px var(--shadow);position:absolute;top:0;bottom:0;right:0}.toolbar{justify-content:flex-start}.ov{font-size:11px}.ov.tl div:not(:first-child),.ov.tr div:not(:first-child){display:none}}
