.python-panel{margin-top:1rem;padding:1.2rem;border:1px solid var(--line,#cfdee4);border-radius:14px;background:var(--paper,#fff);min-width:0}
.python-panel h2,.python-panel h3{margin-top:.5rem}
.python-panel label{display:block;font-weight:600;margin:.8rem 0 .35rem}
.python-panel textarea{box-sizing:border-box;width:100%;min-width:0;resize:vertical;line-height:1.5;border:1px solid var(--line,#cfdee4);border-radius:8px;padding:.8rem;background:var(--paper,#fff);color:var(--ink,#193b50)}
.python-editor{font-family:Consolas,'Liberation Mono',monospace;font-size:1rem;min-height:220px;tab-size:4;white-space:pre;overflow:auto}
.python-actions,.python-trace-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.8rem 0}
.python-actions button,.python-trace-actions button{min-height:42px}
.python-panel button svg{width:19px;height:19px;vertical-align:middle;margin-right:.35rem;flex-shrink:0}
.python-actions button{display:inline-flex;align-items:center;justify-content:center}
.python-panel .python-check{display:flex;gap:.55rem;align-items:center;font-weight:400}
.python-check input{width:20px;height:20px;flex-shrink:0}
.python-help,.python-save-status{font-size:.88rem;line-height:1.6;color:var(--muted,#496375)}
.python-status{font-weight:600;margin:1rem 0;overflow-wrap:anywhere}
.python-status[data-state=error]{color:var(--ink,#193b50);border-left:4px solid #bf452d;padding:.5rem .8rem;background:var(--soft,#edf6f6)}
.python-status[data-state=warning]{border-left:4px solid #bc8100;padding:.5rem .8rem;background:var(--soft,#edf6f6)}
.python-panel [data-python-results]:not(:empty){border-top:1px solid var(--line,#cfdee4);margin-top:1rem;padding-top:1rem}
.python-panel [data-python-results] h4{font-size:1rem;margin:.8rem 0 .4rem}
.python-error-help{padding:.8rem;border:1px solid var(--line,#cfdee4);border-left:4px solid #bf452d;border-radius:8px;margin:1rem 0}
.python-error-help>button{margin:.25rem .4rem .25rem 0;min-height:42px;max-width:100%}
.python-native-error{overflow-wrap:anywhere;white-space:pre-wrap}
.python-save-status[data-state=warning]{border-left:4px solid #bc8100;padding:.4rem .7rem}
.python-output,.python-code-snapshot{font-family:Consolas,'Liberation Mono',monospace;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.95rem;line-height:1.55;padding:.8rem;border-radius:8px;background:var(--soft,#edf6f6);color:var(--ink,#193b50);max-height:360px;overflow:auto}
.python-code-line{display:block;padding:0 .25rem;border-left:3px solid transparent}
.python-code-line.current{border-color:#14766e;background:rgba(20,118,110,.13);font-weight:700}
.python-line-number{display:inline-block;width:3ch;margin-right:1ch;color:var(--muted,#496375);font-weight:400;user-select:none}
.python-variables{width:100%;border-collapse:collapse;table-layout:fixed}
.python-variables th,.python-variables td{padding:.45rem .6rem;border-bottom:1px solid var(--line,#cfdee4);text-align:left;overflow-wrap:anywhere;vertical-align:top}
.python-variables th:first-child{width:30%}
.python-variables td:last-child{font-family:Consolas,'Liberation Mono',monospace;white-space:pre-wrap}
.python-trace-actions input[type=range]{min-width:90px;flex:1;max-width:420px}
.python-trace-description{font-size:.9rem;line-height:1.6}
.python-panel details{margin:.8rem 0;border:1px solid var(--line,#cfdee4);border-radius:8px;padding:.7rem}
.python-panel summary{cursor:pointer;font-weight:600}
.python-panel [hidden]{display:none!important}
.python-panel pre:focus-visible,.python-panel button:focus-visible,.python-panel textarea:focus-visible,.python-panel input:focus-visible{outline:3px solid var(--accent,#14766e);outline-offset:3px}
@media(max-width:480px){.python-panel{padding:.8rem}.python-actions button{flex:1 1 42%}.python-editor{font-size:.9rem}.python-variables th,.python-variables td{padding:.4rem}.python-trace-actions input[type=range]{flex-basis:100%;max-width:none}}
@media print{.python-actions,.python-inputs,.python-check,.python-save-status,.python-trace-actions{display:none!important}.python-panel{break-inside:auto}.python-output,.python-code-snapshot{max-height:none;overflow:visible}.python-panel textarea{min-height:0}}
