*{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;color:#1a202c;-webkit-overflow-scrolling:touch;background:#f7fafc;width:100%;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;position:relative;overflow:hidden auto}#root{width:100%;min-height:100vh}@supports (min-height:100dvh){#root{min-height:100dvh}}button{touch-action:manipulation;font-family:inherit}button:focus-visible{outline-offset:2px;outline:2px solid #4299e1}input,select,textarea{font-family:inherit;font-size:16px}input:focus,select:focus,textarea:focus{border-color:#4299e1;outline:none;box-shadow:0 0 0 3px #4299e14d}.full-viewport{width:100%;height:100vh;overflow:hidden}@supports (height:100dvh){.full-viewport{height:100dvh}}.safe-top{padding-top:env(safe-area-inset-top,0)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom,0)}.safe-left{padding-left:env(safe-area-inset-left,0)}.safe-right{padding-right:env(safe-area-inset-right,0)}.app{color:#1a202c;background:#f7fafc;flex-direction:column;width:100%;min-height:100vh;display:flex}@supports (min-height:100dvh){.app{min-height:100dvh}}.app--graph{width:100%;height:100vh;overflow:hidden}@supports (height:100dvh){.app--graph{height:100dvh}}.header{padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0));z-index:10;background-color:#2d3748;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex;box-shadow:0 2px 8px #00000026}@media (width>=768px){.header{flex-wrap:nowrap;padding:12px 20px}}.title{color:#fff;margin:0;font-size:18px;font-weight:600}@media (width>=768px){.title{font-size:20px}}.graph-container{flex:1;min-height:0;position:relative;overflow:hidden}.error-toast{top:calc(env(safe-area-inset-top,0) + 16px);color:#c53030;z-index:1000;text-align:center;pointer-events:none;background-color:#fed7d7;border-radius:8px;max-width:calc(100vw - 32px);padding:10px 18px;font-size:14px;font-weight:500;animation:.3s slideIn;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}@keyframes slideIn{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}
