:root{--color-bg:#fcf8e3;--color-surface:#fff;--color-surface-alt:#f5f0dc;--color-primary:#288228;--color-primary-hover:#1e6b1e;--color-primary-active:#186418;--color-primary-running:#f0ad4e;--color-primary-error:#d9534f;--color-secondary:#e6e6e6;--color-text:#333;--color-text-muted:#666;--color-border:#faebcc;--color-border-strong:#ddd;--color-error:#d9534f;--color-warning:#f0ad4e;--color-success:#5cb85c;--color-info:#5bc0de;--font-mono:"Courier New", Courier, monospace;--font-sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 12px #00000026}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.5}.app{background-color:var(--color-bg);height:100vh;font-family:var(--font-sans);color:var(--color-text);flex-direction:column;font-size:14px;display:flex;overflow:hidden}.app-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.blockpy-editor{border:1px solid var(--color-border);flex-direction:column;height:100%;display:flex;overflow:hidden}.blockpy-header-row{border-bottom:1px solid var(--color-border);flex-direction:row;flex-shrink:0;display:flex}.blockpy-description{flex:3;min-width:0;padding:8px 10px 6px}.blockpy-name{margin-bottom:4px;font-size:14px;display:block}.blockpy-instructions{color:var(--color-text);font-size:14px}.blockpy-instructions p,.blockpy-instructions pre{margin-bottom:4px}.blockpy-instructions pre,.blockpy-instructions code{font-family:var(--font-mono)}.blockpy-quick-menu{border-left:1px solid var(--color-border);color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;gap:4px;padding:6px 10px;font-size:14px;font-style:italic;display:flex}.blockpy-second-row{border-bottom:1px solid var(--color-border);flex-direction:row;flex-shrink:0;min-height:0;display:flex}.blockpy-console{border-right:1px solid var(--color-border);flex-direction:column;flex:1;min-width:0;padding:8px 10px 6px;display:flex}.blockpy-console>strong,.blockpy-feedback-panel>strong{color:var(--color-text);margin-bottom:4px;font-size:14px;display:block}.blockpy-printer{resize:vertical;background-color:var(--color-surface);border:1px solid var(--color-border-strong);height:160px;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;color:var(--color-text);padding:4px 8px;font-size:13px;line-height:1.5;overflow:auto}.blockpy-printer .output-placeholder{color:var(--color-text-muted);font-style:italic;font-family:var(--font-sans)}.blockpy-printer .error-line{color:var(--color-error)}.blockpy-feedback-panel{flex-direction:column;flex:1;min-width:0;padding:8px 10px 6px;display:flex}.blockpy-feedback-content{flex:1;font-size:14px;overflow-y:auto}.feedback-badge{border-radius:var(--radius-sm);color:#fff;vertical-align:middle;margin-left:4px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-block}.feedback-badge-none{background-color:var(--color-text-muted)}.feedback-badge-error{background-color:var(--color-error)}.feedback-badge-warning{background-color:var(--color-warning);color:#333}.feedback-badge-success{background-color:var(--color-success)}.feedback-badge-info{background-color:var(--color-info)}.feedback-message{font-size:13px;font-family:var(--font-mono);color:var(--color-error);white-space:pre-wrap;word-break:break-all;margin-top:4px}.feedback-ready{color:var(--color-text-muted);font-size:13px;font-style:italic;font-family:var(--font-sans)}.blockpy-editor-row{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.toolbar{background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:6px;padding:4px 8px;display:flex}.btn{border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-sans);cursor:pointer;border:1px solid #0000;align-items:center;gap:4px;margin:2px 0;padding:4px 10px;font-weight:400;text-decoration:none;transition:background .1s,border-color .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.65;cursor:not-allowed}.btn-run{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary-hover)}.btn-run:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-active)}.btn-run.running{background-color:var(--color-primary-running);color:#fff;border-color:#d9963a}.btn-run.error{background-color:var(--color-primary-error);color:#fff;border-color:#b52b27}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary);border-color:#adadad}.btn-small{background-color:var(--color-surface);color:var(--color-text-muted);border-color:var(--color-border-strong);padding:1px 6px;font-size:11px}.btn-small:hover{background-color:var(--color-secondary)}.sync-status{margin-left:auto;font-size:12px}.status-parsing,.status-blocks,.status-text{border-radius:var(--radius-sm);background-color:var(--color-surface-alt);color:var(--color-text-muted);padding:2px 6px;font-size:12px}.editor-panes{flex:1;min-height:0;display:flex;overflow:hidden}.editor-pane{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.editor-divider{background:var(--color-border);cursor:col-resize;flex-shrink:0;width:4px}.pane-header{background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;padding:3px 8px;display:flex}.pane-header h2{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.pane-content{flex:1;position:relative;overflow:hidden}.blockly-container,.codemirror-container{width:100%;height:100%}.parse-errors{color:var(--color-error);margin-top:4px;font-size:12px}.parse-error-item{margin-bottom:2px}.parse-error-location{color:var(--color-text-muted);font-size:11px}
