asxpio/public/style.css
Sergei Poljanski 7ed1a674aa
All checks were successful
Build and Deploy to Production / build (push) Successful in 48s
Build and Deploy to Production / deploy (push) Successful in 27s
main page: SP -> Logo
2026-06-09 02:22:28 +03:00

433 lines
8.1 KiB
CSS
Raw 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;
width: 56px;
height: 56px;
margin-bottom: 14px;
line-height: 0;
}
.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;
}
}