PyQt GUI layout =============== The production GUI (``psc-sim-gui``) uses a **4-column** PyQt5 + Matplotlib layout: 1. Parameter inputs (preset, spins, I–V sweep) 2. Actions (EIS load/fit, metrics, LTspice, export) 3. Equivalent-circuit schematic 4. Plot tabs (I–V, SR, Rs, Nyquist, Bode, TRAN) Columns 1–2 use fixed width (300–380 px) and ``QScrollArea`` so controls do not squash on small windows. The plot column uses a larger ``stretch`` factor so graphs expand when the window is resized. Plot refresh uses ``PlotContext`` (session + ``GuiViewState`` + widget bundles) in ``psc_sim.gui.plot_context``; tab functions accept ``PlotContext`` with thin ``MainWindow`` wrappers for axis controls. Debounced parameter edits call ``refresh_after_param_change`` (metrics, circuit, active tab only); full ``refresh_plots`` runs on preset change and the manual update button. Full stack notes (scroll policy, ``QFormLayout``, EIS display frequency filter, preset-linked sweeps) are in the repository file: ``docs/gui-layout-tech-stack.md``