html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden}body{display:flex;flex-direction:row;justify-content:center;align-items:flex-start}#app{width:100%;height:100%;display:flex;flex-direction:column;align-items:center}canvas{width:100%;height:100%;display:block}#controls{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:8px;align-items:stretch;width:260px;z-index:11}#displayMode{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 2px 10px #0000001a;padding:8px 12px;font-size:14px;font-family:sans-serif;line-height:1.6}#displayMode label{display:flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}#monthSelect{width:100%;box-sizing:border-box;padding:8px 12px;font-size:14px;font-family:sans-serif;background:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 2px 10px #0000001a;cursor:pointer}#histogramPanel{position:fixed;bottom:20px;left:20px;width:fit-content;z-index:10;background:#fff;opacity:.9;border:1px solid #bfbfbf;border-radius:10px 10px 0 0}#histogramBar{width:100%;height:28px;cursor:move;background:#bfbfbf;border-radius:10px 10px 0 0;border-bottom:1px solid #bbb;box-shadow:0 1px 3px #666}#histogramBody{margin:5px;width:600px;height:380px}.tick line{stroke-width:1px;stroke:#dfdfdf}.title{font-size:12px;fill:#333}#loading-overlay{position:fixed;inset:0;background:#fffffff2;display:flex;align-items:center;justify-content:center;z-index:9999;font-family:system-ui,sans-serif}#loading-overlay.hidden{display:none}#loading-box{text-align:center;max-width:380px;padding:32px}#loading-spinner{width:36px;height:36px;border:3px solid #e0e0e0;border-top-color:#555;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}#loading-overlay.error #loading-spinner{display:none}@keyframes spin{to{transform:rotate(360deg)}}#loading-title{font-size:18px;font-weight:600;color:#222;margin:0 0 8px}#loading-overlay.error #loading-title{color:#c0392b}#loading-text{font-size:14px;color:#555;margin:0 0 6px}#loading-note{font-size:12px;color:#999;margin:0}
