*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:#f8f9fa;color:#212529;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:#1a1a2e;color:#fff;padding:1rem 2rem}.app-header h1{font-size:1.75rem;font-weight:700;letter-spacing:.05em}.app-subtitle{font-size:.85rem;opacity:.6;margin-top:.15rem}.app-nav{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.nav-btn{padding:.4rem 1rem;border:1px solid rgba(255,255,255,.25);border-radius:4px;background:transparent;color:#fff;cursor:pointer;font-size:.9rem;transition:background .15s}.nav-btn:hover{background:#ffffff1a}.nav-btn.active{background:#e63946;border-color:#e63946}.app-main{flex:1;padding:2rem}.placeholder{text-align:center;padding:4rem 2rem;color:#6c757d}.placeholder h2{font-size:1.5rem;margin-bottom:.5rem}.screen-hidden{display:none}.block-builder{display:flex;gap:1.5rem;align-items:flex-start;max-width:1100px;margin:0 auto}.builder-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.25rem}.builder-sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:1rem}.formula-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.formula-header h3{font-size:1rem;font-weight:600;color:#495057}.formula-canvas{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:2rem 1.5rem;min-height:100px;overflow-x:auto;cursor:default;display:flex;align-items:center}.wff-status{font-size:.8rem;font-weight:600;padding:2px 10px;border-radius:99px}.status-incomplete{background:#f1f3f5;color:#868e96}.status-ok{background:#d3f9d8;color:#2b9348}.status-error{background:#ffe3e3;color:#c92a2a}.fblock{display:inline-flex;align-items:center;border-radius:6px;padding:5px 10px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1rem;line-height:1.4;font-weight:500;transition:filter .1s,box-shadow .1s;white-space:nowrap}.fblock:hover{filter:brightness(1.08)}.fblock-selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #e63946!important}.fblock-hole{background:transparent;border:2px dashed #ced4da;color:#adb5bd;min-width:3.5rem;justify-content:center;font-style:italic;font-size:.85rem;font-weight:400}.fblock-atom{background:#4361ee;color:#fff;font-weight:700}.fblock-true{background:#2b9348;color:#fff;font-weight:700}.fblock-false{background:#c1121f;color:#fff;font-weight:700}.fblock-not{background:#e76f51;color:#fff;gap:5px;padding:4px 8px}.fblock-binary{gap:5px;padding:5px 8px;color:#fff}.fblock-and{background:#2d6a4f}.fblock-or{background:#7209b7}.fblock-implies{background:#3a0ca3}.fblock-iff{background:#0096c7}.fblock-opsym{font-weight:700;opacity:.9;padding:0 2px}.export-panel{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1rem 1.25rem}.export-panel h4{font-size:.9rem;font-weight:600;color:#495057;margin-bottom:.75rem}.export-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.export-label{font-size:.8rem;color:#868e96;width:4rem;flex-shrink:0}.export-input{flex:1;min-width:0;font-size:.85rem;font-family:monospace;border:1px solid #dee2e6;border-radius:4px;padding:3px 6px;color:#495057;background:#f8f9fa}.export-panel button{font-size:.8rem;padding:3px 10px;border:1px solid #dee2e6;border-radius:4px;background:#fff;cursor:pointer;white-space:nowrap}.export-panel button:hover{background:#f1f3f5}.send-to-panel{background:#f0f4ff;border:1px solid #c5d0fa;border-radius:8px;padding:1rem 1.25rem}.send-to-panel h4{font-size:.9rem;font-weight:600;color:#3a3a5c;margin-bottom:.75rem}.send-to-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.btn-send-to{padding:6px 14px;border-radius:5px;border:1px solid #4361ee;background:#fff;color:#4361ee;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.btn-send-to:hover{background:#4361ee;color:#fff}.palette{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1rem 1.25rem}.palette-title{font-size:.95rem;font-weight:600;color:#495057;margin-bottom:.5rem}.palette-hint{font-size:.8rem;color:#adb5bd;margin-bottom:.75rem}.palette-section{margin-bottom:1rem}.palette-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#adb5bd;margin-bottom:.4rem}.palette-items{display:flex;flex-wrap:wrap;gap:.4rem}.palette-btn{padding:5px 12px;border-radius:5px;border:none;cursor:pointer;font-size:1rem;font-weight:600;transition:filter .1s,opacity .1s}.palette-btn:disabled{opacity:.35;cursor:default}.palette-btn:not(:disabled):hover{filter:brightness(1.1)}.palette-btn-atom{background:#4361ee;color:#fff}.palette-btn-const{background:#495057;color:#fff}.palette-btn-op{color:#fff}.palette-btn-not{background:#e76f51}.palette-btn-and{background:#2d6a4f}.palette-btn-or{background:#7209b7}.palette-btn-implies{background:#3a0ca3}.palette-btn-iff{background:#0096c7}.palette-add-atom{display:flex;gap:.4rem;margin-top:.5rem}.palette-add-atom input{flex:1;min-width:0;padding:4px 8px;border:1px solid #dee2e6;border-radius:4px;font-size:.85rem}.palette-add-atom button{padding:4px 10px;border:1px solid #dee2e6;border-radius:4px;background:#fff;cursor:pointer;font-size:.85rem}.palette-add-atom button:disabled{opacity:.4;cursor:default}.palette-add-atom button:not(:disabled):hover{background:#f1f3f5}.builder-actions{display:flex;gap:.5rem}.builder-actions button{flex:1;padding:7px 0;border-radius:5px;border:1px solid #dee2e6;font-size:.85rem;cursor:pointer;background:#fff}.builder-actions button:disabled{opacity:.4;cursor:default}.btn-delete:not(:disabled):hover{background:#ffe3e3;border-color:#f03e3e;color:#c92a2a}.btn-clear:hover{background:#f1f3f5}.checker-screen{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.checker-input-area h3{font-size:1rem;font-weight:600;color:#495057;margin-bottom:.5rem}.checker-input-row{display:flex;gap:.5rem}.checker-input{flex:1;font-size:1.1rem;font-family:monospace;padding:8px 12px;border:1px solid #dee2e6;border-radius:6px;outline:none;transition:border-color .15s}.checker-input:focus{border-color:#4361ee}.checker-input.input-error{border-color:#f03e3e}.btn-check{padding:8px 20px;background:#4361ee;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-check:hover:not(:disabled){background:#3451d1}.btn-check:disabled{opacity:.4;cursor:default}.checker-hint{font-size:.8rem;color:#adb5bd;margin-top:.4rem}.checker-hint code{background:#f1f3f5;padding:1px 4px;border-radius:3px;font-size:.85em}.checker-error{color:#c92a2a;font-size:.9rem;margin-top:.4rem;font-family:monospace}.checker-result{display:flex;flex-direction:column;gap:1rem}.result-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.result-formula{font-family:monospace;font-size:1.05rem;color:#212529}.result-vars{font-size:.8rem;color:#868e96}.result-mode-badge{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:99px}.badge-tt{background:#e7f5ff;color:#1971c2}.badge-sat{background:#fff3bf;color:#e67700}.checker-warning{background:#fff3bf;border:1px solid #ffd43b;border-radius:6px;padding:8px 12px;font-size:.9rem;color:#7c4d00}.checker-info{background:#f1f3f5;border-radius:6px;padding:8px 12px;font-size:.9rem;color:#495057}.verdict-badge{display:inline-block;padding:6px 14px;border-radius:6px;font-size:.9rem;font-weight:600;align-self:flex-start}.verdict-tautology{background:#d3f9d8;color:#2b9348}.verdict-contradiction{background:#ffe3e3;color:#c92a2a}.verdict-contingent{background:#e7f5ff;color:#1971c2}.truth-table-wrap{display:flex;flex-direction:column;gap:.75rem}.truth-table-scroll{overflow-x:auto;border:1px solid #dee2e6;border-radius:8px}.truth-table{border-collapse:collapse;width:100%;font-size:.95rem;text-align:center}.truth-table th{background:#f8f9fa;padding:8px 16px;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6;font-family:monospace}.truth-table td{padding:6px 16px;border-bottom:1px solid #f1f3f5;font-family:monospace;font-weight:600}.truth-table tr:last-child td{border-bottom:none}.val-true{color:#2b9348}.val-false{color:#c92a2a}.col-result{border-left:2px solid #dee2e6;background:#fafafa}.sat-result{display:flex;flex-direction:column;gap:.75rem}.sat-assignment{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.9rem}.sat-assignment-label{color:#495057;font-weight:500}.sat-assignment-vals{display:flex;flex-wrap:wrap;gap:.4rem}.sat-lit{font-family:monospace;padding:2px 8px;border-radius:4px;font-weight:600;background:#f1f3f5;font-size:.9rem}.sat-lit.val-true{background:#d3f9d8;color:#2b9348}.sat-lit.val-false{background:#ffe3e3;color:#c92a2a}.simplifier-screen{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.simp-input-area h3{font-size:1rem;font-weight:600;color:#495057;margin-bottom:.5rem}.simp-input-row{display:flex;gap:.5rem}.simp-input{flex:1;font-size:1.1rem;font-family:monospace;padding:8px 12px;border:1px solid #dee2e6;border-radius:6px;outline:none;transition:border-color .15s}.simp-input:focus{border-color:#4361ee}.simp-input.input-error{border-color:#f03e3e}.btn-simplify{padding:8px 20px;background:#4361ee;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;white-space:nowrap}.btn-simplify:hover:not(:disabled){background:#3451d1}.btn-simplify:disabled{opacity:.4;cursor:default}.simp-error{color:#c92a2a;font-size:.9rem;margin-top:.4rem;font-family:monospace}.simp-options{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.75rem}.simp-options-label{font-size:.85rem;font-weight:600;color:#868e96}.simp-radio,.simp-checkbox{display:flex;align-items:center;gap:.3rem;font-size:.9rem;color:#495057;cursor:pointer}.simp-checkbox.disabled{opacity:.5;cursor:default}.simp-nav{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.simp-nav-btn{padding:5px 12px;border:1px solid #dee2e6;border-radius:5px;background:#fff;cursor:pointer;font-size:.9rem;transition:background .1s}.simp-nav-btn:hover:not(:disabled){background:#f1f3f5}.simp-nav-btn:disabled{opacity:.35;cursor:default}.simp-nav-counter{font-size:.9rem;color:#495057;padding:0 .5rem;font-weight:500}.simp-showall{margin-left:auto;background:#f1f3f5}.simp-step-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.simp-step-rule{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.rule-name{font-size:1rem;font-weight:700;color:#212529}.rule-pattern{font-size:.85rem;font-family:monospace;color:#868e96;background:#f1f3f5;padding:1px 6px;border-radius:3px}.simp-step-changed{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.9rem}.changed-label{color:#868e96;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.changed-before{font-family:monospace;background:#ffe3e3;color:#c92a2a;padding:2px 8px;border-radius:4px;font-size:.95rem}.changed-arrow{color:#adb5bd;font-size:1rem}.changed-after{font-family:monospace;background:#d3f9d8;color:#2b9348;padding:2px 8px;border-radius:4px;font-size:.95rem}.simp-step-formula{font-family:monospace;font-size:1.4rem;color:#212529;padding-top:.25rem;border-top:1px solid #f1f3f5;word-break:break-all}.simp-all-steps{background:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden}.simp-all-row{display:grid;grid-template-columns:2rem 11rem 1fr;gap:.5rem;align-items:baseline;padding:7px 1rem;cursor:pointer;border-bottom:1px solid #f1f3f5;font-size:.88rem;transition:background .1s}.simp-all-row:last-child{border-bottom:none}.simp-all-row:hover{background:#f8f9fa}.simp-all-row.current-row{background:#e7f5ff}.all-row-num{color:#adb5bd;text-align:right;font-size:.8rem}.all-row-rule{color:#495057;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.all-row-formula{font-family:monospace;color:#212529}.simp-done{background:#d3f9d8;color:#2b9348;border-radius:6px;padding:8px 14px;font-size:.9rem;font-weight:500}.proof-screen{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}.proof-controls{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.btn-proof{padding:7px 16px;border:1px solid #dee2e6;border-radius:6px;background:#fff;font-size:.9rem;cursor:pointer;transition:background .1s}.btn-proof:hover{background:#f1f3f5}.btn-proof.primary{background:#4361ee;color:#fff;border-color:#4361ee}.btn-proof.primary:hover{background:#3451d1}.proof-validate-status{margin-left:auto;font-size:.9rem;font-weight:500;padding:5px 12px;border-radius:5px}.proof-validate-status.all-ok{background:#d3f9d8;color:#2b9348}.proof-validate-status.has-err{background:#ffe3e3;color:#c92a2a}.proof-table{display:flex;flex-direction:column;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;background:#fff}.proof-table-header{display:grid;grid-template-columns:2.5rem 1.5rem 1fr 10rem 6rem 2rem;gap:.5rem;padding:6px .75rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;font-size:.78rem;font-weight:600;color:#868e96;text-transform:uppercase;letter-spacing:.04em;align-items:center}.proof-line-row{display:grid;grid-template-columns:2.5rem 1.5rem 1fr 10rem 6rem 2rem;gap:.5rem;padding:5px .75rem;border-bottom:1px solid #f1f3f5;align-items:center;transition:background .1s}.proof-line-row:last-child{border-bottom:none}.proof-line-row:hover{background:#f8f9fa}.proof-line-row.selected{background:#e7f5ff}.proof-line-row.row-error{background:#fff5f5}.proof-line-row.row-ok{background:#fff}.cell-num{font-size:.8rem;color:#adb5bd;text-align:right;-webkit-user-select:none;user-select:none}.cell-depth{display:flex;gap:2px;align-items:center}.depth-btn{width:18px;height:18px;padding:0;font-size:.7rem;line-height:1;border:1px solid #dee2e6;border-radius:3px;background:#fff;cursor:pointer;color:#495057;display:flex;align-items:center;justify-content:center}.depth-btn:hover{background:#f1f3f5}.cell-formula{display:flex;align-items:center;gap:4px}.depth-indent{display:inline-block;width:18px;height:100%;border-left:2px solid #adb5bd;flex-shrink:0}.formula-input{flex:1;font-family:monospace;font-size:1rem;border:none;outline:none;background:transparent;padding:2px 4px;border-radius:3px;color:#212529}.formula-input:focus{background:#f8f9fa}.formula-input.input-error{color:#c92a2a}.rule-select{font-size:.85rem;padding:3px 6px;border:1px solid #dee2e6;border-radius:4px;background:#fff;color:#212529;cursor:pointer;width:100%}.rule-select:focus{outline:none;border-color:#4361ee}.cit-input{font-size:.85rem;font-family:monospace;padding:3px 6px;border:1px solid #dee2e6;border-radius:4px;width:100%;color:#212529}.cit-input:focus{outline:none;border-color:#4361ee}.btn-delete-line{width:22px;height:22px;padding:0;border:none;border-radius:4px;background:transparent;cursor:pointer;color:#adb5bd;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center}.btn-delete-line:hover{background:#ffe3e3;color:#c92a2a}.line-result{grid-column:2 / -1;padding:2px .75rem 4px 2.75rem;font-size:.8rem;color:#c92a2a}.btn-add-line{align-self:flex-start;padding:6px 14px;border:1px dashed #adb5bd;border-radius:6px;background:#fff;color:#495057;font-size:.9rem;cursor:pointer;transition:background .1s,border-color .1s}.btn-add-line:hover{background:#f1f3f5;border-color:#4361ee;color:#4361ee}.proof-help{font-size:.82rem;color:#868e96;line-height:1.6}.proof-help code{font-family:monospace;background:#f1f3f5;padding:1px 5px;border-radius:3px}.rules-ref{margin-top:1.5rem}.rules-ref-toggle{background:none;border:1px solid #dee2e6;border-radius:5px;padding:6px 14px;font-size:.85rem;color:#495057;cursor:pointer}.rules-ref-toggle:hover{background:#f8f9fa}.rules-ref-body{margin-top:.75rem;display:flex;flex-direction:column;gap:1.25rem}.rules-ref-heading{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#868e96;margin-bottom:.4rem}.rules-ref-table{width:100%;border-collapse:collapse;font-size:.82rem}.rules-ref-table th{text-align:left;font-weight:600;color:#6c757d;border-bottom:1px solid #dee2e6;padding:4px 10px 4px 0;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.rules-ref-table td{padding:5px 10px 5px 0;border-bottom:1px solid #f1f3f5;vertical-align:top}.rules-ref-table tr:last-child td{border-bottom:none}.ref-name{color:#212529;font-weight:500;white-space:nowrap;width:30%}.ref-schema{font-family:monospace;color:#3a3a5c;width:40%}.ref-cit{color:#6c757d;font-size:.78rem;width:30%}
