.csp-templates{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:2rem 0 .75rem;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:.85rem 1.1rem}.csp-templates .label{color:var(--text-dim);font-size:.85rem;font-family:var(--font-mono);margin-right:.25rem}.tpl-btn{background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text);padding:.45rem .9rem;border-radius:6px;font-size:.85rem;font-family:var(--font-mono);cursor:pointer;transition:all .15s}.tpl-btn:hover{border-color:var(--accent);color:var(--accent)}.tpl-btn.reset{color:var(--text-faint)}.csp-options{margin:0 0 1.5rem;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:.85rem 1.1rem}.csp-options label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--text-dim)}.csp-options code{background:var(--bg-elev-2);padding:.1rem .35rem;border-radius:3px;font-size:.85em;color:var(--accent-bright);font-family:var(--font-mono)}.builder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:.85rem;margin-bottom:2rem}.directive-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem;transition:opacity .15s}.directive-card.disabled{opacity:.55}.directive-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}.directive-header h3{margin:0;font-size:.95rem;font-family:var(--font-mono);color:var(--text)}.directive-desc{margin:.2rem 0 0;font-size:.78rem;color:var(--text-faint);line-height:1.45}.toggle-btn{background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text-faint);padding:.35rem .7rem;border-radius:5px;cursor:pointer;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.05em;transition:all .15s;flex-shrink:0}.toggle-btn.on{background:#38bdf81f;color:var(--accent);border-color:var(--accent)}.toggle-btn:hover{transform:translateY(-1px)}.sources-list{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0;min-height:1.5rem}.no-sources{color:var(--text-faint);font-size:.8rem;font-style:italic}.source-chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--bg-elev-2);border:1px solid var(--border);padding:.2rem .3rem .2rem .55rem;border-radius:4px;font-family:var(--font-mono);font-size:.78rem;color:var(--text)}.source-chip.risky{border-color:#f59e0b66;background:#f59e0b14;color:var(--warning)}.chip-remove{background:none;border:none;color:inherit;cursor:pointer;padding:0 .25rem;font-size:1.05rem;line-height:1;opacity:.7}.chip-remove:hover{opacity:1;color:var(--danger)}.quick-add-row{display:flex;flex-wrap:wrap;gap:.3rem;margin:.6rem 0;padding-top:.6rem;border-top:1px dashed var(--border)}.quick-btn{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:.25rem .55rem;border-radius:4px;font-family:var(--font-mono);font-size:.75rem;cursor:pointer;transition:all .15s}.quick-btn:hover{border-color:var(--accent);color:var(--accent)}.quick-btn.active{background:#38bdf81a;border-color:var(--accent);color:var(--accent)}.quick-btn.risky{color:var(--warning)}.quick-btn.risky:hover{border-color:var(--warning);color:var(--warning)}.quick-btn.risky.active{background:#f59e0b1a;border-color:var(--warning);color:var(--warning)}.custom-add{display:flex;gap:.35rem;margin-top:.5rem}.custom-add input{flex:1;min-width:0;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:5px;padding:.4rem .6rem;color:var(--text);font-size:.8rem;font-family:var(--font-mono)}.custom-add input:focus{outline:none;border-color:var(--accent)}.custom-add button{background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text);padding:.4rem .9rem;border-radius:5px;cursor:pointer;font-size:.8rem;font-family:var(--font-mono);transition:all .15s}.custom-add button:hover{border-color:var(--accent);color:var(--accent)}.disabled-note{color:var(--text-faint);font-size:.8rem;margin:.25rem 0 0;font-style:italic}.policy-preview{margin:2rem 0 1.5rem}.policy-preview h2{font-size:1rem;font-family:var(--font-mono);color:var(--text-dim);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.05em}.policy-preview pre{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;margin:0;overflow-x:auto;line-height:1.6}.policy-preview pre code{background:none;padding:0;font-family:var(--font-mono);font-size:.85rem;color:var(--text);white-space:pre}
