.pyfmt-wrap{margin-bottom:2rem;}
.pyfmt-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 24px rgba(15,23,42,0.06);overflow:hidden;}
.pyfmt-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#fafafa;border-bottom:1px solid #e5e7eb;}
.pyfmt-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.pyfmt-actions-right{margin-left:auto;}
.pyfmt-btn{border-radius:8px;font-size:0.9rem;font-weight:500;padding:10px 18px;border:1px solid transparent;cursor:pointer;transition:background 0.2s ease,color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease;}
.pyfmt-btn-primary{background:#0d9488;color:#fff;border-color:#0d9488;}
.pyfmt-btn-primary:hover{background:#0f766e;border-color:#0f766e;box-shadow:0 4px 12px rgba(13,148,136,0.25);}
.pyfmt-btn-ghost{background:transparent;color:#374151;border-color:#d1d5db;}
.pyfmt-btn-ghost:hover{background:#f3f4f6;border-color:#9ca3af;color:#111827;}
.pyfmt-btn-outline{background:#fff;color:#0d9488;border-color:#0d9488;}
.pyfmt-btn-outline:hover{background:#ccfbf1;color:#0f766e;}
.pyfmt-btn-outline.copied{background:#ecfdf5;color:#059669;border-color:#10b981;}
.pyfmt-notice{display:none;font-size:0.875rem;padding:10px 16px;border-radius:8px;margin:0 16px 12px;}
.pyfmt-notice.is-visible{display:block;}
.pyfmt-notice.is-error{background:#fef2f2;color:#b91c1c;}
.pyfmt-notice.is-success{background:#f0fdf4;color:#166534;}
.pyfmt-grid{display:flex;flex-direction:column;gap:0;}
.pyfmt-pane{display:flex;flex-direction:column;border-bottom:1px solid #e5e7eb;}
.pyfmt-pane:last-child{border-bottom:none;}
.pyfmt-pane-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:10px 16px;background:#f9fafb;}
.pyfmt-pane-title{font-weight:600;font-size:0.95rem;color:#111827;}
.pyfmt-pane-hint{font-size:0.8rem;color:var(--text-muted,#6b7280);}
.pyfmt-editor{min-height:420px;width:100%;}
@media (min-width:768px){.pyfmt-bar{padding:16px 20px;}
.pyfmt-notice{margin:0 20px 14px;}
.pyfmt-pane-head{padding:12px 20px;}
.pyfmt-editor{min-height:540px;}
.pyfmt-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;}
.pyfmt-pane{border-bottom:none;border-right:1px solid #e5e7eb;}
.pyfmt-pane:last-child{border-right:none;}
}
@media (max-width:479px){.pyfmt-bar{flex-direction:column;align-items:stretch;}
.pyfmt-actions{justify-content:flex-start;}
.pyfmt-actions-right{margin-left:0;}
.pyfmt-btn{flex:1;min-width:0;}
}
