make_post_sell/make_post_sell/static/css/common.css
Russell Ballestrini 014f8e7836 Fix product page image and content overflow issues
- Override general img width rule for product-main images to prevent overflow
- Add overflow constraints to content sections (.product-description, .content, section.content)
- Use \!important to ensure product-main images use auto width instead of 100%
- Add horizontal scrolling fallback instead of layout breaking
2025-10-04 20:27:01 -04:00

2058 lines
39 KiB
CSS

/* * * * * *
*
* Make Post Sell (mps) is a mobile first web application. We make the pages
* look great on mobile & only use media queries as needed for bigger displays.
*
* We use CSS Grid. It's awesome.
*
* * * * * */
body {
margin: 0px;
font-family: helvetica;
}
h1 {
font-size: 1.75em;
margin-top: .4em;
margin-bottom: .4em;
}
table {
width: 100%;
}
table tr:nth-child(even) {
/* Light gray background for even rows */
background-color: #f2f2f2;
}
table tr:nth-child(odd) {
/* White background for odd rows (optional, for contrast) */
background-color: #ffffff;
}
tr, th, td {
padding: 8px;
border: 0px;
text-align: left;
}
label {
display: block;
font-weight: bold;
}
span.asterisk {
color: red;
font-weight: bold;
}
a {
text-decoration: none;
color: #5f6368
}
input {
/* keep the input inside the parents box! */
box-sizing: border-box;
}
section {
margin-bottom: 0px;
}
input[type="text"],
input[type="tel"],
input[type="password"],
input[type="number"],
input[type="date"] {
padding: 8px;
border-radius: 4px;
border-style: solid;
border-width: 1px;
border-color: #CCCCCC;
}
textarea {
/* keep the input inside the parents box! */
box-sizing: border-box;
padding: 8px;
border-radius: 4px;
border-style: solid;
border-width: 1px;
border-color: #CCCCCC;
}
section.shop-name-and-description {
display: grid;
}
input.mps-quantity {
max-width: 60px;
}
input.mps-submit {
float: right;
}
textarea.mps-billing-address,
textarea.mps-shop-description,
textarea.mps-bundle-data,
textarea.mps-shop-ribbon-text
{
max-width: 600px;
width: 100%;
height: 120px;
padding: 10px;
}
textarea.mps-shop-ribbon-text {
height: 60px;
}
input.mps-shop-name,
input.mps-phone-number,
input.mps-google-analytics-id,
input.mps-stripe-public-api-key,
input.mps-stripe-secret-api-key,
input.mps-shop-ribbon-text-color,
input.mps-shop-ribbon-color
{
max-width: 600px;
width: 100%;
}
section.product-title-and-description,
section.content-title-and-description {
display: grid;
}
section.product-left,
section.content-left {
justify-self: right;
text-align: left;
/*max-width: 480px;*/
}
section.product-right,
section.content-right {
justify-self: center;
text-align: center;
}
section.log-in-form {
justify-self: right;
text-align: center;
}
section.join-form {
justify-self: left;
text-align: center;
}
input.mps-product-title,
input.mps-product-price,
input.mps-content-title {
max-width: 600px;
width: 100%;
}
textarea.mps-product-description,
textarea.mps-content-description {
max-width: 600px;
width: 100%;
height: 120px;
padding: 10px;
}
input.file-input {
width: 100%;
}
div.message-ribbon {
padding: 8px;
text-align: center;
font-weight: bold;
font-size: 18px;
}
section.main {
/*padding: 14px;*/
}
/*
section.grid-nav {
grid-column: 1/-1;
}
*/
/* mobile first */
/* the navbar is stacked by default. */
section.nav {
background-color: #F9F9FA;
display: grid;
grid-template-columns: 1fr;
grid-auto-columns: max-content;
grid-auto-flow: dense;
grid-gap: 4px;
padding: 4px;
}
div.message-ribbon {
display: none;
}
section.log-in {
text-align: center;
align-self: center;
font-size: .75em;
}
section.search {
align-self: center;
}
form.search {
width: 100%;
}
input.mps-keywords {
width: 100%;
text-align: center;
}
section.content {
background-color: #ffffff;
margin: 4px;
padding: 4px;
}
section.logo{
text-align: center;
vertical-align: middle;
}
img {
width: 100%;
max-width: 100%;
height: auto;
box-sizing: border-box;
}
img.logo {
width: initial;
max-height: 100px;
max-width: 94%;
padding: 10px;
}
img.product-cart-thumbnail {
border: 1px solid #ddd;
border-radius: 4px;
max-width:44px;
max-height:44px;
width: auto;
height: auto;
}
img.product-thumbnail {
border: 1px solid #ddd;
border-radius: 4px;
max-width:58px;
max-height:58px;
width: auto;
height: auto;
}
img.product-main {
max-width: 100% !important;
width: auto !important;
height: auto !important;
}
/* Prevent content sections from overflowing */
.product-description,
.content,
section.content {
max-width: 100%;
overflow-x: auto;
box-sizing: border-box;
}
.mps-button {
border: none;
border-radius: 4px;
color: white;
background-color: #D4D0C8;
display: inline-block;
font-size: 14px;
font-weight: bold;
min-width: 100%;
margin-top: 4px;
margin-bottom: 4px;
padding-top: 14px;
padding-bottom: 14px;
text-align: center;
text-decoration: none;
cursor: pointer;
}
[data-theme="dark"] .mps-button {
background-color: #2d3748;
background-image: url("/static/img/trans-blue.png");
color: var(--blue-color);
border: 2px solid var(--blue-color);
}
[data-theme="dark"] .mps-button:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-blue2.png");
color: #ffffff;
border: 2px solid var(--blue-color);
}
a.mps-button-blue,
button.mps-button-blue {
background-color: #98b6fa;
}
[data-theme="dark"] a.mps-button-blue,
[data-theme="dark"] button.mps-button-blue,
[data-theme="dark"] input.mps-button-blue {
background-color: #2d3748;
background-image: url("/static/img/trans-blue.png");
color: var(--blue-color);
border: 2px solid var(--blue-color);
}
[data-theme="dark"] a.mps-button-blue:hover,
[data-theme="dark"] button.mps-button-blue:hover,
[data-theme="dark"] input.mps-button-blue:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-blue2.png");
color: #ffffff;
border: 2px solid var(--blue-color);
}
a.mps-button-green,
button.mps-button-green {
background-color: #a3c765;
}
[data-theme="dark"] a.mps-button-green,
[data-theme="dark"] button.mps-button-green,
[data-theme="dark"] input.mps-button-green {
background-color: #2d3748;
background-image: url("/static/img/trans-green.png");
color: var(--green-color);
border: 2px solid var(--green-color);
}
[data-theme="dark"] a.mps-button-green:hover,
[data-theme="dark"] button.mps-button-green:hover,
[data-theme="dark"] input.mps-button-green:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-green2.png");
color: #ffffff;
border: 2px solid var(--green-color);
}
a.mps-button-red,
button.mps-button-red,
input.mps-button-red {
background-color: #bc2131;
opacity: 0.8;
}
[data-theme="dark"] a.mps-button-red,
[data-theme="dark"] button.mps-button-red,
[data-theme="dark"] input.mps-button-red {
background-color: #2d3748;
background-image: url("/static/img/trans-red.png");
color: var(--red-color);
border: 2px solid var(--red-color);
opacity: 1.0;
}
[data-theme="dark"] a.mps-button-red:hover,
[data-theme="dark"] button.mps-button-red:hover,
[data-theme="dark"] input.mps-button-red:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-red2.png");
color: #ffffff;
border: 2px solid var(--red-color);
}
.mps-cancel-button,
.mps-comment-form-button {
display: inline-block;
padding: 6px 12px;
border: 1px solid #ccc;
border-radius: 4px;
background: #f9f9f9;
color: #333;
font-size: 14px;
cursor: pointer;
margin: 0;
text-decoration: none;
vertical-align: top;
box-sizing: border-box;
}
.comment-actions {
margin-bottom: 42px;
display: grid;
grid-auto-flow: column;
grid-template-columns: repeat(auto-fit, max-content);
justify-content: start;
gap: 5px;
}
.reply-link,
.edit-link,
.delete-link,
.moderate-link {
display: inline-block;
padding: 6px 12px;
border: 1px solid #ccc;
border-radius: 4px;
background: #f9f9f9;
color: #333;
font-size: 14px;
cursor: pointer;
margin: 0;
text-decoration: none;
vertical-align: top;
box-sizing: border-box;
}
.payment-toggle-button {
display: inline-block;
padding: 6px 12px;
border: 1px solid #ccc;
border-radius: 4px;
background: #f9f9f9;
color: #333;
font-size: 14px;
cursor: pointer;
margin: 0;
text-decoration: none;
vertical-align: top;
box-sizing: border-box;
}
.payment-toggle-button.enable {
background: #4a4;
color: white;
border-color: #4a4;
}
.payment-toggle-button.disable {
background: #d44;
color: white;
border-color: #d44;
}
a.product-edit-button {
background-color: #98b6fa;
}
[data-theme="dark"] a.mps-button.product-edit-button {
background-color: #2d3748;
background-image: url("/static/img/trans-blue.png");
color: #7ab9ff;
border: 2px solid #7ab9ff;
}
[data-theme="dark"] a.mps-button.product-edit-button:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-blue2.png");
color: #ffffff;
border: 2px solid #7ab9ff;
}
[data-theme="dark"] a.mps-button.shop-new-button {
background-color: #2d3748;
background-image: url("/static/img/trans-green.png");
color: var(--green-color);
border: 2px solid var(--green-color);
}
[data-theme="dark"] a.mps-button.shop-new-button:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-green2.png");
color: #ffffff;
border: 2px solid var(--green-color);
}
/* Product download and preview buttons - make them green in dark mode */
[data-theme="dark"] a.product-download-button,
[data-theme="dark"] button.product-download-button {
background-color: #2d3748;
background-image: url("/static/img/trans-green.png");
color: var(--green-color);
border: 2px solid var(--green-color);
}
[data-theme="dark"] a.product-download-button:hover,
[data-theme="dark"] button.product-download-button:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-green2.png");
color: #ffffff;
border: 2px solid var(--green-color);
}
[data-theme="dark"] a.product-preview-button,
[data-theme="dark"] button.product-preview-button {
background-color: #2d3748;
background-image: url("/static/img/trans-green.png");
color: var(--green-color);
border: 2px solid var(--green-color);
}
[data-theme="dark"] a.product-preview-button:hover,
[data-theme="dark"] button.product-preview-button:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-green2.png");
color: #ffffff;
border: 2px solid var(--green-color);
}
a.product-preview-button {
background-color: #98b6fa;
}
a.product-download-button {
background-color: #a3c765;
}
a.product-new-button {
background-color: #98b6fa;
}
a.shop-new-button {
background-color: #a3c765;
}
a.done-button {
background-color: #a3c765;
}
a.log-out-button {
background-color: #5871ad;
}
a.shop-switch-button {
color: #666666;
border-color: #666666;
border-style: solid;
border-width: 1px;
padding-top: 10px;
padding-bottom: 10px;
}
a.user-display-name {
margin: 14px;
display: inline-block;
}
a.cart-and-count {
margin: 14px;
display: inline-block;
}
/* -------------------------------------------------------------------
Form-buttons: copy your <a>-class styles to <button> elements
------------------------------------------------------------------- */
/* “Remove” link: no button chrome, just a link color + hover underline */
button.cart-remove-link {
background: none;
border: none;
padding: 0;
font: inherit;
color: #5f6368;
text-decoration: none;
cursor: pointer;
}
button.cart-remove-link:hover {
text-decoration: underline;
}
/* Links should use the theme link color */
[data-theme="dark"] a {
color: var(--link-color);
}
[data-theme="dark"] button.cart-remove-link {
color: var(--blue-color);
}
[data-theme="dark"] button.cart-remove-link:hover {
color: var(--blue-color);
text-decoration: underline;
}
/* “Add To Cart”, “Download”, “Preview” buttons */
button.product-download-button,
button.product-preview-button {
/* inherits .mps-button defaults */
}
button.product-download-button {
background-color: #a3c765;
}
button.product-preview-button {
background-color: #98b6fa;
}
/* Cart action buttons */
button.cart-checkout-button {
background-color: #a3c765;
}
button.cart-save-button {
background-color: #98b6fa;
}
/* Dark mode cart buttons */
[data-theme="dark"] button.cart-checkout-button {
background-color: #2d3748;
background-image: url("/static/img/trans-green.png");
color: var(--green-color);
border: 2px solid var(--green-color);
}
[data-theme="dark"] button.cart-checkout-button:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-green2.png");
color: #ffffff;
border: 2px solid var(--green-color);
}
button.cart-activate-button {
background-color: #5871ad;
}
button.cart-delete-button {
background-color: #CC6958;
color: white;
}
/* “Make Public” / “Make Private” */
button.cart-public-button {
background: none;
color: #666666;
border: 1px solid #666666;
padding-top: 10px;
padding-bottom: 10px;
cursor: pointer;
}
button.cart-public-button span.lock {
font-size: 24px;
}
/* Continue shopping button */
.cart-continue-shopping-button {
background-color: #98b6fa;
color: white;
}
.coupon-apply-button {
background-color: #a3c765;
}
section.serp {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1.00fr));
grid-auto-columns: max-content;
grid-auto-flow: dense;
grid-gap: 4px;
}
div.serp-item {
border-radius: 4px;
padding: 4px;
grid-column: span 1;
grid-row: span 1;
/* The new CSS animations are off the hook. */
transition: background-color 800ms ease;
-webkit-transition: 600ms -webkit-filter ease;
-moz-transition: 600ms -moz-filter ease;
-moz-transition: 600ms filter ease;
-ms-transition: 600ms -ms-filter ease;
-o-transition: 600ms -o-filter ease;
transition: 600ms filter ease, 600ms -webkit-filter ease;
}
div.serp-item:hover {
background-color: #FBFBF3;
-webkit-filter: brightness(88%);
-moz-filter: brightness(88%);
filter: brightness(88%);
}
[data-theme="dark"] div.serp-item:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-blue2.png");
border: 2px solid #7ab9ff;
color: #ffffff;
-webkit-filter: none;
-moz-filter: none;
filter: none;
}
[data-theme="dark"] div.serp-item:hover a {
color: #ffffff;
}
img.serp-thumbnail {
border-radius: 4px;
}
div.edit-page {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
grid-gap: 20px;
}
hr {
color: #EEEEEE;
}
section.upload-product-and-preview {
}
section.upload-thumbnails {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
grid-auto-columns: max-content;
grid-auto-flow: dense;
grid-gap: 14px;
}
section.windows-95-task-bar {
display: grid;
grid-template-columns: 1fr;
grid-gap: 4px;
padding-top: 10px;
padding-bottom: 10px;
}
section.windows-95-start-button {
padding: 14px;
padding-top: 2px;
padding-bottom: 2px;
}
section.call-to-action {
padding: 14px;
padding-top: 2px;
padding-bottom: 2px;
}
section.one-column, section.one-column-thin {
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
section.one-column-thin {
max-width: 400px;
}
section.user-settings {
justify-self: right;
}
section.button-panel {
justify-self: left;
text-align: center;
}
section.existing-cards {
justify-self: right;
text-align: left;
margin-bottom: 40px;
}
section.new-card {
justify-self: left;
text-align: right;
margin-bottom: 40px;
}
div.card-details {
max-width: 240px;
margin:auto;
}
div.card-are-you-sure-buttons {
max-width: 300px;
margin:auto;
}
section.cart-left {
margin-bottom: 10px;
grid-column: 1 / span 3;
}
section.cart-left-grid {
display: grid;
grid-gap: 20px;
grid-template-columns: 1fr 4fr 1fr;
}
section.cart-right {
text-align: center;
margin-bottom: 10px;
grid-column: 4;
}
span.cart-left-item-title {
font-weight: bold;
font-size: 18px;
}
section.checkout-left {
justify-self: right;
text-align: left;
text-align: center;
margin-bottom: 40px;
}
section.checkout-right {
justify-self: left;
text-align: center;
margin-bottom: 40px;
}
/* Checkout page: responsive columns based on content */
section.checkout-page {
display: grid;
margin-left: auto;
margin-right: auto;
grid-gap: 20px;
max-width: 640px;
grid-template-columns: 1fr;
}
/* Two columns when multiple sections exist (Stripe + shipping) */
section.checkout-page .checkout-left + .checkout-right {
/* This targets checkout-right when it follows checkout-left */
}
section.checkout-page:has(.checkout-left) {
max-width: 1000px;
grid-template-columns: 1fr 1fr;
}
/* Fallback for browsers without :has() support */
@supports not (selector(:has(*))) {
section.checkout-page {
max-width: 1000px;
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
}
}
section.checkout-page .well {
width: 100%;
box-sizing: border-box;
}
@media (max-width: 800px) {
section.checkout-page {
max-width: 100%;
margin: 0;
padding: 0 10px;
grid-template-columns: 1fr;
}
}
.coupon {
/* Dotted border */
border-radius: 4px;
border: 3px dotted #bbb;
padding: 20px;
}
#email2_input {
display: None;
}
.StripeElement {
width: 90%;
margin: auto;
border-color: #bbbbbb;
border-style: solid;
border-width: 1px;
border-radius: 8px;
background-color: white;
padding: 12px;
}
.opacity-60 {
opacity: .60;
}
.well, .well2 {
background-color: #F9F9FA;
border-radius: 10px;
padding: 10px;
}
/* markup editor css */
section.markup-settings {
width: 100%;
min-height: 280px;
}
textarea.markup-editor-textarea {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
height: 400px;
}
.markup-editor-submit {
float: right;
}
.markup-preview-div {
width: 100%;
}
.markup-preview-div {
border-top: 1px dotted #bbbbbb;
border-bottom: 1px dotted #bbbbbb;
padding-top: 16px;
padding-bottom: 16px;
margin-top: 16px;
margin-bottom: 16px;
margin-right: 5px;
margin-left: 5px;
line-height: 1.6;
}
.markup-preview-div p {
margin-top: 15px;
margin-bottom: 15px;
line-height: 1.75;
}
.preview-raw-markup {
display: block;
white-space: pre-wrap;
background-color: unset;
border-radius: unset;
border: unset;
border-width: 0px;
margin-top: 19px;
margin-bottom: 10px;
}
.discounted {
color: #a3c765;
}
@media (max-width: 800px) {
/* the two-column is stacked by default. */
section.two-column {
display: grid;
grid-template-columns: 1fr;
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
/* On mobile, reorder to put purchase section after images */
.product-images {
order: 1;
}
section.product-right {
order: 2;
width: 100%;
}
section.product-right .well {
margin-top: 30px;
}
.product-description {
order: 3;
}
.product-comments {
order: 4;
}
/* Ensure buttons get full width on mobile */
section.product-right .mps-button {
width: 100%;
min-width: 100%;
}
/* the cart-grid is stacked by default. */
section.cart-grid {
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
/* markup-editor is stacked by default. */
div.markup-editor {
display: grid;
margin-left: auto;
margin-right: auto;
}
section.markup-rendered {
display: none;
}
}
/*************************************************************
*
* for displays bigger than 800px which are "desktop-ish".
*
*************************************************************/
@media (min-width: 960px) {
/* The SERP page grid should have bigger items since it has more room.
* mobile -> desktop
* 140px -> 240px */
section.serp {
grid-template-columns: repeat(auto-fit, minmax(240px, .25fr));
}
/* We have the room to really break into 2 columns */
section.two-column {
display: grid;
grid-template-columns: 2fr 1fr;
grid-template-areas:
"images purchase"
"description purchase"
"comments purchase";
gap: 40px;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
padding-left: 40px;
padding-right: 40px;
align-items: start;
}
.product-images {
grid-area: images;
}
section.product-right {
grid-area: purchase;
}
.product-description {
grid-area: description;
}
.product-comments {
grid-area: comments;
}
/* if we have room, break markup-editor into 2 columns */
div.markup-editor {
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-columns: max-content;
grid-auto-flow: dense;
grid-gap: 30px;
padding: 14px;
justify-items: center;
}
section.markup-settings {
min-height: 400px;
}
/* the minimum width for "desktop-ish" screens. */
a.mps-button {
min-width: 280px;
}
/* really make the button small now that we have room. */
a.mps-button-small {
min-width: 140px;
padding-left: 10px;
padding-right: 10px;
}
section.windows-95-task-bar {
grid-template-columns: 1fr 1fr;
}
section.call-to-action {
text-align: right;
}
/* if we have room, break into 2 columns */
section.cart-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-gap: 30px;
padding: 14px;
justify-items: center;
}
img.product-cart-thumbnail {
max-width:104px;
max-height:104px;
}
section.content {
background-color: #ffffff;
margin: 4px;
padding: 14px;
}
input.mps-keywords {
text-align: left;
}
section.nav {
/* if we have room, break navbar into 3 columns */
grid-template-columns: minmax(200px, 300px) 3fr 1fr;
grid-gap: 30px;
padding: 2px;
}
div.message-ribbon {
display: block;
}
section.log-in {
text-align: right;
}
.well, .well2 {
padding: 10px;
padding-right: 20px;
padding-left: 20px;
}
.well2 {
padding: 10px;
}
}
@media (min-width: 1200px) {
img.product-cart-thumbnail {
max-width:184px;
max-height:184px;
}
.well, .well2 {
padding: 20px;
padding-right: 40px;
padding-left: 40px;
}
.well2 {
padding: 20px;
}
}
div.message-ribbon {
color: #ffffff;
background-color: #5871ad;
background: linear-gradient(to right, #5871ad, #82A8FF);
}
.highlight {
text-shadow:
-6px 0px 6px rgba(255, 231, 13, 0.6),
6px 0px 6px rgba(255, 231, 13, 0.6),
12px 0px 12px rgba(255, 231, 13, 0.6),
-12px 0px 12px rgba(255, 231, 13, 0.6);
}
.avoid-wrap {
display:inline-block;
}
.vertical-text {
display: inline-block;
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);
}
.shown-on-desktop {
display: none;
}
.not-shown-on-desktop {
display: block;
}
@media screen and (min-width:800px) {
.shown-on-desktop {display: block}
.not-shown-on-desktop {display: none}
}
div.message-ribbon {
color: #ffffff;
background-color: #5871ad;
background: linear-gradient(to right, #5871ad, #82A8FF);
}
#alerts {
animation: fadein 2s;
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* ALERT START */
#alerts {
z-index: 98;
}
.alert {
opacity: .85;
display: grid;
grid-template-columns: 1fr 50px;
grid-gap: 10px;
}
.alert-message {
text-align: center;
margin-top: 10px;
margin-bottom: 10px;
}
.alert .close {
text-align: right;
margin-top: 10px;
margin-bottom: 10px;
margin-right: 15px;
}
.alert-danger, .alert-error {
color: #721c24;
background-color: #f8d7da;
border-color: #f5c6cb;
}
.alert-warning {
color: #856404;
background-color: #fff3cd;
border-color: #ffeeba;
}
.alert-info, .alert-notice {
color: var(--text-primary);
background-color: color-mix(in srgb, var(--info-color) 20%, var(--bg-primary) 80%);
border-color: var(--info-color);
}
.alert-success {
color: #155724;
background-color: #a3c765;
border-color: #c3e6cb;
}
/* ALERT END */
/* hidden control area */
.hidden-control {
display: none;
}
#toggle:checked ~ .hidden-control {
display: block;
}
/* Stripe toggle */
#toggle-stripe:checked ~ .hidden-control {
display: block;
}
/* hidden control area */
/* Status and message styling */
.status-message {
color: #666;
}
.success-indicator {
color: green;
}
.error-indicator {
color: #d44;
}
.note-text {
color: #666;
}
[data-theme="dark"] .note-text {
color: #c0c0c0;
}
[data-theme="dark"] .status-message {
color: #c0c0c0;
}
[data-theme="dark"] .error-indicator {
color: #ff6b6b;
font-weight: bold;
}
/* Flash message styling for dark mode */
[data-theme="dark"] .alert-danger,
[data-theme="dark"] .alert-error {
color: #ff6b6b;
background-color: #2d1f20;
border-color: #ff6b6b;
}
[data-theme="dark"] .alert-warning {
color: #ffd93d;
background-color: #2d2a1f;
border-color: #ffd93d;
}
[data-theme="dark"] .alert-info,
[data-theme="dark"] .alert-notice {
color: var(--blue-color);
background-color: #1f252d;
border-color: var(--blue-color);
}
[data-theme="dark"] .alert-success {
color: var(--green-color);
background-color: #1f2d1f;
border-color: var(--green-color);
}
/* Override shop theme link colors to ensure visibility in dark mode */
[data-theme="dark"] a.shop-theme-link-color,
[data-theme="dark"] .shop-theme-link-color {
color: #ffffff !important;
}
/* Add payment method button styling */
.add-payment-method-button {
background-color: var(--blue-color);
color: white;
text-decoration: none;
}
.add-payment-method-button:hover {
background-color: #4a90e2;
color: white;
}
[data-theme="dark"] .add-payment-method-button {
background-color: #2d3748;
background-image: url("/static/img/trans-blue.png");
color: var(--blue-color);
border: 2px solid var(--blue-color);
}
[data-theme="dark"] .add-payment-method-button:hover {
background-color: #2d3748;
background-image: url("/static/img/trans-blue2.png");
color: #ffffff;
border: 2px solid var(--blue-color);
}
.inline-label {
display: inline;
}
.favicon-preview {
width: 32px;
}
/* Input field styling */
.full-width-input {
width: 100%;
}
.disabled-input {
opacity: 0.5;
background-color: #f5f5f5;
}
/* Crypto checkout styles */
.crypto-logo {
width: 150px;
height: 150px;
margin-right: 15px;
vertical-align: middle;
}
.payment-grid {
display: grid;
grid-template-columns: auto 1fr;
gap: 20px;
margin: 16px 0;
align-items: start;
}
.crypto-address {
white-space: pre-wrap;
word-wrap: break-word;
}
.payment-buttons {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 8px;
margin: 8px 0;
}
.payment-button-row-1 {
grid-row: 1;
}
.payment-button-cancel {
grid-column: 1 / -1;
grid-row: 2;
}
.status-box {
background: var(--bg-secondary);
border: 1px solid var(--border-color);
color: var(--text-primary);
border-radius: 4px;
padding: 15px;
margin: 10px 0;
}
.confirmations-hidden {
display: none;
}
.qr-fallback {
width: 150px;
height: 150px;
background: #f0f0f0;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
color: #666;
border: 1px solid #ddd;
}
.success-notice {
background: color-mix(in srgb, var(--success-color) 15%, var(--bg-primary) 85%);
border: 1px solid var(--success-color);
color: var(--text-primary);
border-radius: 4px;
padding: 15px;
margin: 20px 0;
}
.warning-notice {
background: color-mix(in srgb, var(--warning-color) 15%, var(--bg-primary) 85%);
border: 1px solid var(--warning-color);
color: var(--text-primary);
border-radius: 4px;
padding: 15px;
margin: 20px 0;
}
.monospace-address {
font-family: monospace;
background: var(--bg-secondary);
color: var(--text-primary);
padding: 8px;
border-radius: 3px;
word-break: break-all;
}
.notice-list {
margin: 10px 0;
}
.notice-footer {
margin-top: 10px;
}
/* Cart checkout styles */
.disabled-crypto-button {
background: #aaa !important;
cursor: not-allowed;
}
[data-theme="dark"] .disabled-crypto-button {
background-color: #1a1a1a !important;
background-image: none !important;
color: #666666 !important;
border: 2px solid #444444 !important;
cursor: not-allowed;
opacity: 0.6;
}
button img.crypto-button-icon,
.mps-button img.crypto-button-icon,
img.crypto-button-icon {
width: 32px !important;
height: 32px !important;
max-width: 32px !important;
min-width: 32px !important;
margin-right: 8px;
vertical-align: middle;
}
.crypto-settings-link {
color: #f59e0b;
text-decoration: none;
display: block;
margin-top: 10px;
font-size: 14px;
}
.warning-banner {
background: #fff3cd;
border: 1px solid #ffeaa7;
padding: 10px;
border-radius: 5px;
color: #856404;
}
.warning-banner-alt {
background: color-mix(in srgb, var(--info-color) 15%, var(--bg-primary) 85%);
border: 1px solid var(--info-color);
color: var(--text-primary);
border-radius: 4px;
padding: 15px;
margin: 20px 0;
}
.warning-banner p {
margin: 0;
font-size: 14px;
}
.warning-banner h3 {
margin-top: 0;
}
.warning-banner-content {
margin-bottom: 15px;
}
.pending-quote-item {
background: transparent;
border: none;
color: var(--text-primary);
border-radius: 3px;
padding: 10px;
margin: 8px 0;
}
.pending-quote-single {
text-align: center;
}
.pending-quote-cancel {
text-align: center;
margin-top: 10px;
}
.full-width-button {
width: 100%;
display: block;
}
.view-quote-button {
background: #17a2b8;
font-size: 12px;
padding: 5px 10px;
}
.pending-quote-details {
font-size: 12px;
color: #666;
margin-top: 5px;
}
/* Cart page styles */
.cart-float-right {
float: right;
}
.cart-shop-grid-span {
grid-column: span 3;
}
.cart-shop-name {
font-size: 1.5em;
font-weight: bold;
}
.cart-inline-form {
display: inline;
}
.cart-update-button {
width: 80px;
}
.cart-total-section {
text-align: right;
}
.cart-total-grid-span {
text-align: right;
grid-column: span 3;
}
.cart-total-amount {
font-size: 1.5em;
font-weight: bold;
}
.cart-public-link {
font-size: 0.8em;
}
/* Phase 1: Static inline style replacements */
.no-bottom-margin {
margin-bottom: 0px;
}
.no-top-margin {
margin-top: 0px;
}
.bold-text {
font-weight: bold;
}
.stripe-card-logo {
width: 92px;
float: left;
margin-right: 10px;
margin-top: 10px;
}
.stripe-negative-margin {
margin-top: -12px;
}
.stripe-initial-width {
width: initial;
}
.stripe-save-button {
margin-bottom: 0px;
margin-top: 8px;
}
.comment-pending {
color: orange;
}
.hidden-form {
display: none;
}
.coupon-disabled {
opacity: 0.7;
}
.vertical-coupon-text {
margin: 0px;
}
.remove-button-small {
width: 80px;
}
.subtitle-text {
font-size: 0.6em;
font-weight: normal;
}
.original-comment-box {
background-color: #f5f5f5;
padding: 15px;
border-left: 4px solid #007cba;
margin-bottom: 20px;
}
.start-button-icon {
font-size: 20px;
}
.table-full-width {
width: 100%;
max-width: 100%;
}
.table-fixed-layout {
table-layout: fixed;
}
.sold-out-button {
background-color: red !important;
cursor: not-allowed;
}
/* Phase 2: Static layout and status styling */
/* Crypto history layout classes */
.crypto-history-container {
margin: 20px 0;
}
.crypto-payment-card {
border: 1px solid #dee2e6;
border-radius: 4px;
padding: 15px;
margin-bottom: 15px;
background: #f8f9fa;
}
.crypto-header-grid {
display: grid;
grid-template-columns: 1fr auto;
align-items: start;
margin-bottom: 10px;
}
.crypto-header-title {
margin: 0 0 5px 0;
}
.crypto-header-subtitle {
margin: 0;
color: #6c757d;
font-size: 0.9em;
}
.crypto-details-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 15px;
margin: 10px 0;
align-items: start;
}
.crypto-right-align {
text-align: right;
}
.crypto-right-align-justify {
text-align: right;
justify-self: end;
}
.crypto-small-text {
color: #6c757d;
}
/* Status notice classes */
.status-warning-notice {
background: #fff3cd;
border: 1px solid #ffeaa7;
border-radius: 3px;
padding: 8px;
margin-top: 10px;
}
.status-error-notice {
background: #f8d7da;
border: 1px solid #f5c6cb;
border-radius: 3px;
padding: 8px;
margin-top: 10px;
}
.status-info-notice {
background: #d1ecf1;
border: 1px solid #bee5eb;
border-radius: 3px;
padding: 8px;
margin-top: 10px;
}
.crypto-help-section {
margin-top: 30px;
padding: 15px;
background: #e9ecef;
border-radius: 4px;
}
.crypto-empty-state {
text-align: center;
padding: 40px;
color: #6c757d;
}
/* Invoice layout classes */
.invoice-right-section {
text-align: right;
margin: 15px 0;
}
.invoice-total-section {
text-align: right;
margin: 20px 0;
font-size: 1.2em;
}
.invoice-payment-box {
background-color: #f0f8ff;
padding: 15px;
border: 1px solid #4169e1;
border-radius: 5px;
margin: 15px 0;
}
.invoice-margin-section {
margin-top: 15px;
}
.invoice-margin-small {
margin: 5px 0;
}
/* Status color classes */
.status-success {
color: #28a745;
}
.status-warning {
color: #ffc107;
}
.status-info {
color: #6c757d;
}
.status-error {
color: #dc3545;
}
.code-monospace {
font-size: 0.9em;
font-family: monospace;
}
/* Dark Mode Theme System */
:root {
/* Light mode colors (default) */
--bg-primary: #ffffff;
--bg-secondary: #f8f9fa;
--bg-tertiary: #e9ecef;
--text-primary: #333333;
--text-secondary: #6c757d;
--text-muted: #666666;
--border-color: #dee2e6;
--border-light: #e9ecef;
--link-color: #5f6368;
--blue-color: #98b6fa;
--green-color: #a3c765;
--red-color: #bc2131;
--success-color: #28a745;
--warning-color: #ffc107;
--error-color: #dc3545;
--info-color: #17a2b8;
/* Form elements */
--input-bg: #ffffff;
--input-border: #cccccc;
--input-text: #333333;
/* Navigation */
--nav-bg: #f9f9fa;
--nav-text: #333333;
/* Cards and containers */
--card-bg: #f8f9fa;
--well-bg: #f9f9fa;
/* Status notices */
--notice-warning-bg: #fff3cd;
--notice-warning-border: #ffeaa7;
--notice-error-bg: #f8d7da;
--notice-error-border: #f5c6cb;
--notice-info-bg: #d1ecf1;
--notice-info-border: #bee5eb;
}
[data-theme="dark"] {
/* Dark mode colors - zealotrush.com inspired gaming theme */
--bg-primary: #0d1117;
--bg-secondary: #161b22;
--bg-tertiary: #21262d;
--text-primary: #ffffff;
--text-secondary: #cccccc;
--text-muted: #999999;
--border-color: #7ab9ff;
--border-light: #5599dd;
--link-color: #7ab9ff;
--blue-color: #7ab9ff;
--green-color: #08e700;
--red-color: #F34C31;
--success-color: #08e700;
--warning-color: #f34c31;
--error-color: #f34c31;
--info-color: #7ab9ff;
/* Form elements */
--input-bg: #161b22;
--input-border: #7ab9ff;
--input-text: #ffffff;
/* Navigation */
--nav-bg: #0d1117;
--nav-text: #ffffff;
/* Cards and containers */
--card-bg: #2d2d2d;
--well-bg: #2d2d2d;
/* Status notices */
--notice-warning-bg: #3e2723;
--notice-warning-border: #5d4037;
--notice-error-bg: #3f1a1a;
--notice-error-border: #5c2626;
--notice-info-bg: #1a365d;
--notice-info-border: #2c5282;
}
/* Apply theme variables to existing elements */
body {
background-color: var(--bg-primary);
color: var(--text-primary);
}
section.content {
background-color: var(--bg-primary);
color: var(--text-primary);
}
section.nav {
background-color: var(--nav-bg);
color: var(--nav-text);
}
a {
color: var(--link-color);
}
input[type="text"],
input[type="tel"],
input[type="password"],
input[type="number"],
input[type="date"],
textarea {
background-color: var(--input-bg);
border-color: var(--input-border);
color: var(--input-text);
}
.well, .well2 {
background-color: var(--well-bg);
color: var(--text-primary);
}
[data-theme="dark"] .well,
[data-theme="dark"] .well2 {
background-color: #2d3748;
background-image: url("/static/img/trans-blue.png");
border: 2px solid #7ab9ff;
box-shadow: 0 0 10px rgba(122, 185, 255, 0.3);
color: var(--text-primary);
}
/* Dark mode specific overrides for existing classes */
[data-theme="dark"] table tr:nth-child(even) {
background-color: #2d2d2d;
}
[data-theme="dark"] table tr:nth-child(odd) {
background-color: #333333;
}
[data-theme="dark"] .crypto-payment-card {
background: var(--card-bg);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .status-warning-notice {
background: var(--notice-warning-bg);
border-color: var(--notice-warning-border);
color: var(--text-primary);
}
[data-theme="dark"] .status-error-notice {
background: var(--notice-error-bg);
border-color: var(--notice-error-border);
color: var(--text-primary);
}
[data-theme="dark"] .status-info-notice {
background: var(--notice-info-bg);
border-color: var(--notice-info-border);
color: var(--text-primary);
}
[data-theme="dark"] .crypto-help-section {
background: var(--bg-tertiary);
color: var(--text-primary);
}
[data-theme="dark"] .invoice-payment-box {
background-color: #1a365d;
border-color: #2c5282;
color: var(--text-primary);
}
/* Crypto wallet success indicators */
.success-indicator {
color: var(--success-color);
font-weight: bold;
}
[data-theme="dark"] .success-indicator {
color: var(--green-color);
font-weight: bold;
}
/* Theme toggle button */
.theme-toggle {
background: none;
border: 1px solid var(--border-color);
color: var(--text-primary);
padding: 8px 12px;
border-radius: 4px;
cursor: pointer;
font-size: 14px;
transition: background-color 0.2s ease;
}
.theme-toggle:hover {
background-color: var(--bg-secondary);
}
.theme-toggle-icon {
margin-right: 5px;
}