:root{--bg:#f6f7f9;--panel:#fff;--border:#d8dce3;--text:#1c2330;--muted:#667085;--accent:#2456d6;--accent-soft:#e3ebfd;--danger:#c22f3d;--highlight:#9ff2f8;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 12px}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--danger);border-color:var(--danger)}button.icon{color:var(--muted);background:0 0;border:none;padding:2px 6px}button.icon:hover{color:var(--danger)}button:disabled{opacity:.5;cursor:default}input,textarea{font:inherit;color:inherit;border:1px solid var(--border);background:#fff;border-radius:6px;padding:6px 10px}input:focus,textarea:focus,.body-input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.app{max-width:1200px;margin:0 auto;padding:0 16px 48px}.app-header{justify-content:space-between;align-items:center;padding:16px 0;display:flex}.app-header h1{margin:0;font-size:22px}.subtitle{color:var(--muted);font-size:13px;font-weight:400}.app-header nav{gap:8px;display:flex}.app-header nav button.active{background:var(--accent);border-color:var(--accent);color:#fff}.empty{color:var(--muted);font-style:italic}.card-body{font-size:15px;line-height:1.5}.card-body .b,.run.b,.body-editor .toolbar .b{font-weight:700}.card-body .u,.run.u{font-weight:600;text-decoration:underline}.card-body .hl,.run.hl{background:var(--highlight)}.card-body .min,.run.min{color:var(--muted);font-size:.62em}.card-tag{font-weight:700}.card-cite{color:var(--accent);font-weight:600}.card-cite-full{color:var(--muted);margin:4px 0;font-size:13px}.card-missing{color:var(--danger);font-style:italic}.library-toolbar{gap:8px;margin-bottom:16px;display:flex}.library-toolbar input[type=search]{flex:1}.card-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.card-item{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 14px}.card-item>header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.card-item-actions{flex-shrink:0;gap:6px;display:flex}.card-item-actions button{padding:3px 8px;font-size:12px}.modal-backdrop{z-index:10;background:#141a2873;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--panel);border-radius:10px;flex-direction:column;gap:12px;width:min(760px,100%);padding:20px 24px;display:flex}.modal h2{margin:0}.modal label,.modal .field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.cite-row{grid-template-columns:180px 1fr;gap:12px;display:grid}.modal-actions{align-items:center;gap:8px;display:flex}.modal-actions .spacer{flex:1}.body-editor .toolbar{gap:4px;margin-bottom:6px;display:flex}.body-editor .toolbar button{min-width:34px;padding:4px 8px}.body-input{border:1px solid var(--border);min-height:140px;color:var(--text);background:#fff;border-radius:6px;padding:10px;font-weight:400}.speeches{grid-template-columns:220px 1fr;align-items:start;gap:16px;display:grid}.speech-list{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px}.speech-list>button{width:100%}.speech-list ul{flex-direction:column;gap:4px;margin:12px 0 0;padding:0;list-style:none;display:flex}.speech-list li{border-radius:6px;align-items:center;display:flex}.speech-list li.selected{background:var(--accent-soft)}.speech-name{text-align:left;background:0 0;border:none;flex:1;padding:6px 8px}.builder-placeholder{padding:40px}.builder{grid-template-columns:1fr 280px;align-items:start;gap:16px;display:grid}.builder-main{flex-direction:column;gap:12px;display:flex}.builder-toolbar{justify-content:flex-end;display:flex}.show-bodies-toggle{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:inline-flex}.contention{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.contention>header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.contention-name{background:0 0;border-color:#0000;flex:1;font-weight:700}.contention-name:hover,.contention-name:focus{border-color:var(--border);background:#fff}.drag-handle{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;touch-action:none}.block-list{border-radius:6px;flex-direction:column;gap:6px;min-height:40px;padding:4px;display:flex}.block-list.drop-target{background:var(--accent-soft)}.drop-hint{text-align:center;margin:8px 0;font-size:13px}.block{border:1px solid var(--border);background:#fbfcfe;border-radius:6px;padding:6px 10px}.block>header{align-items:center;gap:8px;display:flex}.block-heading{flex:1;min-width:0}.slot-grid{flex-direction:column;gap:8px;display:flex}.slot{border:1px dashed var(--border);border-radius:6px;padding:6px 8px}.slot-name{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:700}.slot .block-list{min-height:30px}.slot .drop-hint{margin:4px 0;font-size:12px}.block>header button{padding:2px 8px;font-size:13px}.block .card-body{border-top:1px dashed var(--border);margin-top:6px;padding-top:6px}.dragging{opacity:.4}.add-contention{align-self:flex-start}.palette{background:var(--panel);border:1px solid var(--border);border-radius:8px;max-height:calc(100vh - 40px);padding:12px;position:sticky;top:12px;overflow-y:auto}.palette h3{margin:0 0 8px;font-size:14px}.palette input{width:100%;margin-bottom:8px}.palette ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.palette-card{border:1px solid var(--border);cursor:grab;touch-action:none;background:#fbfcfe;border-radius:6px;flex-direction:column;gap:2px;padding:6px 8px;font-size:13px;display:flex}.drag-ghost{background:var(--panel);border:1px solid var(--accent);border-radius:6px;max-width:320px;padding:6px 12px;font-weight:600;box-shadow:0 4px 14px #141a2833}
