/* Quick Invoices — all rules scoped to #qinv-app / .qinv-gate so they don't clash with the theme. */
#qinv-app, .qinv-gate {
	--qinv-accent: #1f6feb;
	--qinv-text: #1d2330;
	--qinv-muted: #667085;
	--qinv-border: #d9dee7;
	--qinv-soft: #f5f7fb;
	--qinv-danger: #d92d20;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--qinv-text);
	font-size: 15px;
	line-height: 1.45;
	box-sizing: border-box;
}
#qinv-app { max-width: 920px; margin: 24px auto; }
#qinv-app *, #qinv-app *::before, #qinv-app *::after, .qinv-gate * { box-sizing: border-box; }

/* Login gate */
.qinv-gate { max-width: 420px; margin: 32px auto; background: #fff; border: 1px solid var(--qinv-border); border-radius: 12px; padding: 28px; box-shadow: 0 2px 10px rgba(16,24,40,.05); }
.qinv-gate h2 { margin: 0 0 6px; font-size: 22px; }
.qinv-gate p { color: var(--qinv-muted); margin: 0 0 16px; }
.qinv-gate form p { margin: 0 0 12px; color: var(--qinv-text); }
.qinv-gate label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 4px; }
.qinv-gate input[type=text], .qinv-gate input[type=password], .qinv-gate input[type=email] { width: 100%; padding: 10px 12px; border: 1px solid var(--qinv-border); border-radius: 8px; font: inherit; }
.qinv-gate .login-remember label { display: inline; font-weight: 400; }
.qinv-gate input[type=submit] { width: 100%; padding: 12px; border: 0; border-radius: 8px; background: var(--qinv-accent); color: #fff; font-weight: 700; font-size: 15px; cursor: pointer; }
.qinv-gate .qinv-gate-links { font-size: 14px; margin: 8px 0 0; text-align: center; }

/* App */
#qinv-app .qinv-userbar { display: flex; justify-content: space-between; align-items: center; font-size: 14px; color: var(--qinv-muted); margin-bottom: 12px; }
#qinv-app .qinv-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
#qinv-app .qinv-btn {
	appearance: none; border: 1px solid var(--qinv-border); background: #fff; color: var(--qinv-text);
	padding: 10px 16px; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer;
	display: inline-flex; align-items: center; gap: 6px; line-height: 1; text-decoration: none;
}
#qinv-app .qinv-btn:hover { background: var(--qinv-soft); }
#qinv-app .qinv-btn[disabled] { opacity: .55; cursor: progress; }
#qinv-app .qinv-btn-primary { background: var(--qinv-accent); border-color: var(--qinv-accent); color: #fff; }
#qinv-app .qinv-btn-primary:hover { background: var(--qinv-accent); filter: brightness(.92); }
#qinv-app .qinv-btn-sm { padding: 6px 10px; font-size: 13px; }

#qinv-app .qinv-msg { font-size: 14px; padding: 10px 12px; border-radius: 8px; margin-bottom: 12px; display: none; }
#qinv-app .qinv-msg.is-show { display: block; }
#qinv-app .qinv-msg.is-err { background: #fef3f2; color: var(--qinv-danger); }
#qinv-app .qinv-msg.is-ok { background: #ecfdf3; color: #067647; }
#qinv-app .qinv-msg.is-busy { background: #eff4ff; color: #1849a9; }
#qinv-app .qinv-msg a { color: inherit; font-weight: 700; }
#qinv-app .qinv-editing { font-size: 13px; color: var(--qinv-muted); margin-bottom: 8px; }

#qinv-app .qinv-sheet { background: #fff; border: 1px solid var(--qinv-border); border-radius: 12px; padding: 32px; box-shadow: 0 2px 10px rgba(16,24,40,.05); }
#qinv-app input, #qinv-app textarea, #qinv-app select {
	width: 100%; font: inherit; color: inherit; background: #fff; max-width: none;
	border: 1px solid var(--qinv-border); border-radius: 6px; padding: 7px 9px; margin: 0; box-shadow: none; height: auto;
}
#qinv-app textarea { resize: vertical; min-height: 56px; }
#qinv-app input:focus, #qinv-app textarea:focus, #qinv-app select:focus { outline: none; border-color: var(--qinv-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--qinv-accent) 18%, transparent); }
#qinv-app input.is-invalid { border-color: var(--qinv-danger); }
#qinv-app label { display: block; font-size: 12px; font-weight: 600; color: var(--qinv-muted); text-transform: uppercase; letter-spacing: .04em; margin: 0 0 4px; }

#qinv-app .qinv-header { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
#qinv-app .qinv-title { font-size: 34px; font-weight: 800; letter-spacing: .02em; margin: 0 0 12px; color: var(--qinv-accent); line-height: 1.1; }
#qinv-app .qinv-business { flex: 1 1 320px; display: grid; gap: 6px; }
#qinv-app .qinv-bizname { font-size: 18px; font-weight: 700; }
#qinv-app .qinv-meta { flex: 0 1 260px; display: grid; gap: 10px; }

#qinv-app .qinv-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 28px; }
#qinv-app .qinv-section-h { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--qinv-muted); border-bottom: 2px solid var(--qinv-soft); padding-bottom: 6px; margin: 0 0 10px; }
#qinv-app .qinv-stack { display: grid; gap: 6px; }
#qinv-app .qinv-note { font-size: 12px; color: var(--qinv-muted); margin: 0; }
#qinv-app .qinv-note code { font-size: 11px; }

#qinv-app table.qinv-items { width: 100%; border-collapse: collapse; margin: 0 0 10px; border: 0; }
#qinv-app table.qinv-items th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #fff; background: var(--qinv-accent); padding: 9px 8px; border: 0; }
#qinv-app table.qinv-items th:first-child { border-radius: 6px 0 0 6px; }
#qinv-app table.qinv-items th:last-child { border-radius: 0 6px 6px 0; }
#qinv-app table.qinv-items td { padding: 6px 4px; border: 0; border-bottom: 1px solid var(--qinv-soft); vertical-align: middle; background: none; }
#qinv-app .qinv-col-qty { width: 80px; }
#qinv-app .qinv-col-rate { width: 120px; }
#qinv-app .qinv-col-amt { width: 120px; text-align: right; }
#qinv-app .qinv-col-del { width: 36px; }
#qinv-app td.qinv-amt { text-align: right; font-weight: 600; padding-right: 8px; white-space: nowrap; }
#qinv-app .qinv-del { background: none; border: 0; color: var(--qinv-muted); font-size: 20px; cursor: pointer; line-height: 1; padding: 4px; }
#qinv-app .qinv-del:hover { color: var(--qinv-danger); }
#qinv-app .qinv-add { margin-bottom: 24px; }

#qinv-app .qinv-bottom { display: grid; grid-template-columns: 1fr 300px; gap: 24px; align-items: start; }
#qinv-app .qinv-totals { background: var(--qinv-soft); border-radius: 10px; padding: 14px 16px; }
#qinv-app .qinv-trow { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 5px 0; }
#qinv-app .qinv-trow input { width: 80px; text-align: right; padding: 4px 6px; }
#qinv-app .qinv-inline { display: flex; align-items: center; gap: 6px; }
#qinv-app .qinv-grand { border-top: 2px solid var(--qinv-border); margin-top: 6px; padding-top: 10px; font-size: 18px; font-weight: 800; }
#qinv-app .qinv-grand span:last-child { color: var(--qinv-accent); }

/* My invoices */
#qinv-app .qinv-list { margin-top: 28px; }
#qinv-app .qinv-empty { color: var(--qinv-muted); font-size: 14px; }
#qinv-app .qinv-row { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--qinv-border); }
#qinv-app .qinv-row-main strong { display: block; }
#qinv-app .qinv-row-main span { color: var(--qinv-muted); font-size: 13px; }
#qinv-app .qinv-row-total { font-weight: 700; text-align: right; }
#qinv-app .qinv-pill { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 999px; margin-top: 2px; }
#qinv-app .qinv-pill.is-paid { background: #ecfdf3; color: #067647; }
#qinv-app .qinv-pill.is-unpaid { background: #fff6ed; color: #b54708; }
#qinv-app .qinv-row-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }

@media (max-width: 680px) {
	#qinv-app .qinv-sheet { padding: 18px; }
	#qinv-app .qinv-parties, #qinv-app .qinv-bottom { grid-template-columns: 1fr; }
	#qinv-app table.qinv-items thead { display: none; }
	#qinv-app table.qinv-items, #qinv-app table.qinv-items tbody, #qinv-app table.qinv-items tr, #qinv-app table.qinv-items td { display: block; width: 100%; }
	#qinv-app table.qinv-items tr { border: 1px solid var(--qinv-border); border-radius: 8px; padding: 8px; margin-bottom: 10px; position: relative; }
	#qinv-app table.qinv-items td { border: 0; padding: 3px 0; }
	#qinv-app table.qinv-items td.qinv-col-qty, #qinv-app table.qinv-items td.qinv-col-rate { display: inline-block; width: 48%; }
	#qinv-app td.qinv-amt { text-align: left; }
	#qinv-app td.qinv-amt::before { content: "Amount: "; color: var(--qinv-muted); font-weight: 400; }
	#qinv-app .qinv-del { position: absolute; top: 4px; right: 6px; }
	#qinv-app .qinv-row { grid-template-columns: 1fr auto; }
	#qinv-app .qinv-row-actions { grid-column: 1 / -1; justify-content: flex-start; }
	#qinv-app .qinv-toolbar .qinv-btn { flex: 1 1 45%; justify-content: center; }
}
