asxpio/public/style.css
Sergei Poljanski 96a0f55741
All checks were successful
Build and Deploy to Production / build (push) Successful in 1m9s
Build and Deploy to Production / deploy (push) Successful in 30s
css: invoice list, badges, item form, download button
Extends the existing dark palette to cover the invoicing UI:

- .invoice-list: zebra-free table with right-aligned totals.
- .badge / .badge-pending / .badge-paid: small status chip.
- .items-table: per-row inputs for description/qty/unit price, .remove-row
  button styling.
- .invoice-grid: two-column layout for the terms block (issued/due,
  currency/GEL rate).
- .link-button: subdued "+ add line" affordance.
- .download-button: the prominent CTA on the public landing page.
- color-scheme: dark on date inputs so the native picker matches the
  rest of the page.

No changes to existing rules.
2026-05-26 17:54:48 +03:00

434 lines
8.1 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

body {
background-color: #121212;
color: #AAAAAA;
font-family: 'Open Sans', sans-serif;
margin: 0;
line-height: 1.5;
}
main {
max-width: 720px;
margin: 0 auto;
padding: 40px 20px 80px;
}
.header {
text-align: center;
margin-bottom: 40px;
}
.monogram {
display: inline-block;
margin-bottom: 14px;
line-height: 0;
}
.monogram svg {
display: block;
}
.header h1 {
font-size: 1.8rem;
font-weight: 600;
color: #EEEEEE;
margin: 0;
letter-spacing: -0.01em;
}
.header .tagline {
font-size: 1rem;
color: #999999;
margin: 8px 0 0;
}
.header .ka {
display: block;
font-size: 0.85rem;
color: #666666;
margin-top: 6px;
}
.section {
margin: 36px 0;
}
.section h2 {
font-size: 1rem;
font-weight: 600;
color: #DDDDDD;
text-transform: uppercase;
letter-spacing: 0.08em;
border-bottom: 1px solid #2A2A2A;
padding-bottom: 6px;
margin: 0 0 16px;
}
ul.services {
list-style: none;
padding: 0;
margin: 0;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 8px 24px;
}
ul.services li {
padding-left: 14px;
position: relative;
}
ul.services li::before {
content: '';
position: absolute;
left: 0;
color: #555555;
}
dl.kv {
display: grid;
grid-template-columns: max-content 1fr;
gap: 6px 18px;
margin: 0;
}
dl.kv dt {
color: #777777;
font-size: 0.9rem;
}
dl.kv dd {
margin: 0;
color: #CCCCCC;
}
dl.kv dd.mono,
.mono {
font-family: 'Hack', monospace;
font-size: 0.92rem;
}
.ka-note {
color: #666666;
font-size: 0.85rem;
margin-top: 4px;
}
pre {
position: relative;
background: #222222;
padding: 10px;
font-size: 14px;
font-family: 'Hack', monospace;
word-wrap: break-word;
white-space: pre-wrap;
border: 1px solid #020202;
margin: 8px 0;
}
.copy-button {
position: absolute;
top: 5px;
right: 10px;
cursor: pointer;
color: #424242;
background: #111111;
border-radius: 0.5em;
padding: 2px 7px;
}
.copy-button:hover {
color: #000;
}
a {
color: #BBBBBB;
text-decoration: none;
border-bottom: 1px dotted #444444;
}
a:hover {
color: #FFFFFF;
border-bottom-color: #888888;
}
.footer {
text-align: center;
color: #555555;
font-size: 0.8rem;
padding: 24px 20px;
border-top: 1px solid #1E1E1E;
}
.footer-line {
margin-bottom: 12px;
}
.footer-links {
display: flex;
gap: 18px;
justify-content: center;
align-items: center;
}
.footer-links a {
color: #555555;
border-bottom: none;
line-height: 0;
}
.footer-links a:hover {
color: #FFFFFF;
}
.footer-links svg {
display: block;
}
/* Contact form */
.contact-form {
margin: 0 0 24px;
}
.contact-form .hp {
position: absolute;
left: -10000px;
width: 1px;
height: 1px;
overflow: hidden;
}
.contact-form .field {
margin-bottom: 14px;
}
.contact-form label {
display: block;
color: #888888;
font-size: 0.85rem;
margin-bottom: 4px;
}
.contact-form .optional {
color: #555555;
font-size: 0.8rem;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
width: 100%;
box-sizing: border-box;
background: #1A1A1A;
color: #DDDDDD;
border: 1px solid #2A2A2A;
border-radius: 3px;
padding: 8px 10px;
font-family: inherit;
font-size: 0.95rem;
}
.contact-form textarea {
font-family: 'Hack', monospace;
font-size: 0.9rem;
resize: vertical;
}
.contact-form input:focus,
.contact-form textarea:focus {
outline: none;
border-color: #555555;
background: #1E1E1E;
}
.contact-form button {
background: #2A2A2A;
color: #DDDDDD;
border: 1px solid #3A3A3A;
border-radius: 3px;
padding: 8px 20px;
font-family: inherit;
font-size: 0.95rem;
cursor: pointer;
}
.contact-form button:hover {
background: #333333;
border-color: #555555;
}
.form-error {
display: block;
color: #C97070;
font-size: 0.85rem;
margin-top: 4px;
}
.form-error-base {
background: #2A1414;
border: 1px solid #4A1F1F;
padding: 10px;
border-radius: 3px;
margin-bottom: 16px;
}
.contact-direct {
margin-top: 16px;
padding-top: 16px;
border-top: 1px dashed #2A2A2A;
}
/* Demoted Legal section — visible but quiet */
.section.legal {
margin-top: 56px;
color: #888888;
font-size: 0.9rem;
}
.section.legal h2 {
font-size: 0.85rem;
color: #888888;
border-bottom-color: #1E1E1E;
text-transform: none;
letter-spacing: 0.04em;
}
.section.legal .legal-intro {
margin: 0 0 14px;
color: #777777;
}
.section.legal dl.kv dt {
color: #666666;
font-size: 0.85rem;
}
.section.legal dl.kv dd {
color: #999999;
font-size: 0.9rem;
}
/* Invoices */
.invoice-list {
width: 100%;
border-collapse: collapse;
font-size: 0.92rem;
}
.invoice-list th,
.invoice-list td {
text-align: left;
padding: 8px 10px;
border-bottom: 1px solid #1E1E1E;
}
.invoice-list th {
color: #777777;
font-weight: 600;
font-size: 0.78rem;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.invoice-list td.num,
.invoice-list th.num {
text-align: right;
}
.invoice-list td.actions {
text-align: right;
}
.badge {
display: inline-block;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.06em;
padding: 2px 8px;
border-radius: 3px;
border: 1px solid;
}
.badge-pending {
color: #C9A86A;
border-color: #4A3E1F;
background: #2A2414;
}
.badge-paid {
color: #7AB97A;
border-color: #234A23;
background: #142A14;
}
.invoice-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 0 16px;
}
.items-table {
width: 100%;
border-collapse: collapse;
margin: 8px 0 12px;
}
.items-table th,
.items-table td {
padding: 4px;
border: none;
vertical-align: top;
}
.items-table th {
color: #777777;
font-weight: 600;
font-size: 0.78rem;
text-transform: uppercase;
letter-spacing: 0.06em;
text-align: left;
}
.items-table th.num {
text-align: right;
}
.items-table input {
width: 100%;
box-sizing: border-box;
background: #1A1A1A;
color: #DDDDDD;
border: 1px solid #2A2A2A;
border-radius: 3px;
padding: 6px 8px;
font-family: inherit;
font-size: 0.9rem;
}
.items-table td.num input {
text-align: right;
font-family: 'Hack', monospace;
}
.items-table td.actions {
width: 32px;
text-align: center;
}
.items-table .remove-row {
background: transparent;
border: 1px solid #2A2A2A;
color: #777777;
border-radius: 3px;
padding: 4px 8px;
cursor: pointer;
line-height: 1;
}
.items-table .remove-row:hover {
color: #C97070;
border-color: #4A1F1F;
}
.link-button {
background: transparent;
border: 1px dashed #2A2A2A;
color: #888888;
padding: 6px 12px;
border-radius: 3px;
cursor: pointer;
font-family: inherit;
margin-bottom: 18px;
}
.link-button:hover {
color: #DDDDDD;
border-color: #555555;
}
.invoice-form select {
width: 100%;
box-sizing: border-box;
background: #1A1A1A;
color: #DDDDDD;
border: 1px solid #2A2A2A;
border-radius: 3px;
padding: 8px 10px;
font-family: inherit;
font-size: 0.95rem;
}
.invoice-form input[type="date"] {
width: 100%;
box-sizing: border-box;
background: #1A1A1A;
color: #DDDDDD;
border: 1px solid #2A2A2A;
border-radius: 3px;
padding: 8px 10px;
font-family: 'Hack', monospace;
font-size: 0.92rem;
color-scheme: dark;
}
.download-button {
display: inline-block;
background: #2A2A2A;
color: #DDDDDD;
border: 1px solid #3A3A3A;
border-radius: 3px;
padding: 12px 32px;
font-size: 1rem;
text-decoration: none;
}
.download-button:hover {
background: #333333;
border-color: #555555;
color: #FFFFFF;
}
@media (max-width: 560px) {
ul.services {
grid-template-columns: 1fr;
}
dl.kv {
grid-template-columns: 1fr;
gap: 2px 0;
}
dl.kv dd {
margin-bottom: 8px;
}
}