/* The real app's own pieces, on top of the validated mockup styles. */

/* Sign-in */
.signin-error { min-height: 18px; margin: 0; color: #f87171; font-size: 13px; }
.signin-error:empty { min-height: 0; }
.boot-error { margin: 40px auto; max-width: 480px; color: var(--muted); text-align: center; }

/* Toasts that carry an error */
.toast.is-error > .ico { color: #f87171; }

/* Settings: people's roles, agent tokens */
.grant-row { display: flex; align-items: center; gap: 12px; padding: 10px 14px; }
.grant-row + .grant-row { border-top: 1px solid var(--line); }
.grant-row > span { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.grant-row > span .ico { color: var(--accent-text); flex: none; }
.grant-row small { color: var(--muted); }
.copy-row { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 40px; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--line-2); background: var(--input); color: var(--text); font: 12.5px/1.5 var(--mono); text-align: left; word-break: break-all; transition: border-color .15s, background-color .15s; }
.copy-row:hover { border-color: var(--line-3); }
.copy-row > .ico { flex: none; color: var(--muted); }
.copy-row.is-copied { border-color: #4ac578; }
.copy-row.is-copied > .ico { color: #4ac578; }
.refuse-why { margin-top: 14px; }
.refuse-why[hidden] { display: none; }
.refuse-why textarea { width: 100%; resize: vertical; }

/* Details panel: read-only values, the delete row */
.gi-static { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; color: var(--text-2); }
.gi-danger { justify-content: flex-start; border-top: 1px solid var(--line); padding-top: 14px; }

/* Documents: code blocks and quotes */
.g-code { margin: 8px 0; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--line); background: var(--code); font: 13px/1.6 var(--mono); color: var(--text-2); overflow-x: auto; white-space: pre; }
.blk blockquote { margin: 8px 0; padding: 4px 0 4px 14px; border-left: 3px solid var(--line-3); color: var(--text-2); }

/* Menus */
.dd-sep { margin: 4px 6px; border: 0; border-top: 1px solid var(--line); }
.bv-acts { display: flex; align-items: center; gap: 10px; justify-content: flex-end; }
a.bv-file { transition: border-color .15s; }
a.bv-file:hover { border-color: var(--line-3); }
a.g-tname { color: var(--text); text-decoration: none; }
.g-trow.is-files { grid-template-columns: minmax(200px, 1.6fr) minmax(120px, 1fr) 80px 70px 110px 44px; }

/* Proposal diffs: long rows wrap, the diff keeps its height when the refuse box opens */
.diff { overflow: visible; }
.diff span { white-space: pre-wrap; overflow-wrap: anywhere; padding-left: 30px; text-indent: -16px; }

/* Documents: the one-line description under the meta line, and its field in Details */
.g-desc { margin: -12px 0 20px; color: var(--text-2); font-size: 15px; line-height: 1.5; }
.g-desc.is-empty { color: var(--muted); font-size: 13px; font-style: italic; }
.gi-input { width: 100%; min-height: 34px; padding: 6px 10px; border: 1px solid var(--line-2); border-radius: 8px; background: var(--input); color: var(--text); font: 13px/1.4 "Noto Sans", sans-serif; transition: border-color .15s; }
.gi-input:hover { border-color: var(--line-3); }
.gi-input:focus { outline: none; border-color: var(--accent); }
