/* Tactics Shop -- side cart + floating cart button.
   Sizes and colours measured from the CheckoutWC side cart it replaces (2026-10-31). */

#tshop-floating-cart {
	position: fixed;
	bottom: var(--tshop-fb-bottom, 150px);
	right: var(--tshop-fb-right, 20px);
	z-index: 999997;
}
#tshop-floating-cart.tshop-is-empty { display: none; }
#tshop-floating-cart .tshop-open {
	display: block;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .373);
	padding: 16px;
	color: #222;
	text-decoration: none;
	line-height: 1;
}
#tshop-floating-cart .tshop-fb-inner,
.tshop-head-count { display: flex; align-items: center; }
#tshop-floating-cart svg,
.tshop-head-count svg { width: 34px; height: 34px; color: var(--tshop-accent, #cc9933); display: block; flex: 0 0 34px; }
#tshop-floating-cart .tshop-count,
.tshop-head-count .tshop-count {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 20px;
	color: #222;
	padding-left: 4px;
}

html.tshop-locked, html.tshop-locked body { overflow: hidden; }

.tshop-side-cart { position: fixed; inset: 0; z-index: 999999; visibility: hidden; pointer-events: none; }
.tshop-side-cart.is-open { visibility: visible; pointer-events: auto; }
.tshop-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, .5); opacity: 0; transition: opacity .3s ease; }
.tshop-side-cart.is-open .tshop-overlay { opacity: 1; }

.tshop-panel {
	position: absolute;
	top: var(--wp-admin--admin-bar--height, 0px);
	right: 0;
	bottom: 0;
	width: 480px;
	max-width: 100%;
	box-sizing: border-box;
	background: #fff;
	color: #000;
	font-family: Arimo, Arial, Helvetica, sans-serif;
	font-size: 16px;
	line-height: 1;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform .3s ease;
	outline: none;
}
.tshop-side-cart.is-open .tshop-panel { transform: translateX(0); }
.tshop-side-cart.is-busy .tshop-body,
.tshop-side-cart.is-busy .tshop-foot { opacity: .55; pointer-events: none; transition: opacity .15s; }

.tshop-head { position: relative; display: flex; justify-content: center; align-items: center; padding: 24px 24px 8px; min-height: 34px; }
.tshop-close {
	position: absolute; right: 18px; top: 22px;
	width: 36px; height: 36px; padding: 6px;
	background: transparent; border: 0; box-shadow: none; border-radius: 3px;
	color: #000; cursor: pointer; line-height: 0;
}
.tshop-close:hover, .tshop-close:focus { background: #f2f2f2; color: #000; }
.tshop-close svg { width: 24px; height: 24px; }

.tshop-notices { padding: 0 24px; }
.tshop-notice { margin: 8px 0 0; padding: 10px 12px; border-radius: 4px; font-size: 13px; line-height: 1.4; background: #fdecea; color: #8a1f11; }
.tshop-notice-success { background: #edf7ed; color: #1e4620; }
.tshop-notice-notice { background: #eef4fb; color: #0b3a66; }

.tshop-body { flex: 1 1 auto; overflow-y: auto; padding: 0 24px 16px; -webkit-overflow-scrolling: touch; }
.tshop-empty { text-align: center; color: #555; padding: 48px 0; margin: 0; font-size: 16px; line-height: 1.4; }
.tshop-items { list-style: none; margin: 0; padding: 0; }
.tshop-item { position: relative; display: flex; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid #e1e1e1; margin: 0; }
.tshop-item:last-child { border-bottom: 0; }
.tshop-item-img { flex: 0 0 60px; }
.tshop-item-img img { display: block; width: 60px; height: 60px; object-fit: cover; border: 1px solid #e1e1e1; border-radius: 0; box-sizing: border-box; margin: 0; }
.tshop-item-main { flex: 1 1 auto; min-width: 0; }
.tshop-item-title { font-size: 16px; line-height: 1.2; color: #000; margin: 0 0 6px; }
.tshop-item-title a { color: inherit; text-decoration: none; }
.tshop-item-data { font-size: 12px; line-height: 1; color: #717171; margin: 0 0 8px; overflow-wrap: anywhere; }
.tshop-item-data .woocommerce-Price-amount { font-size: inherit; }
.tshop-qty { display: inline-flex; align-items: center; height: 32px; box-sizing: border-box; border: 1px solid #d3d4d5; border-radius: 16px; }
.tshop-qty-btn {
	width: 30px; height: 30px; padding: 0; margin: 0;
	border: 0; border-radius: 16px; box-shadow: none; background: transparent;
	color: #717171; font-size: 14px; line-height: 30px; cursor: pointer; font-family: inherit;
}
.tshop-qty-btn:hover, .tshop-qty-btn:focus { background: #f3f3f3; color: #000; }
.tshop-qty-btn[disabled] { opacity: .35; cursor: default; background: transparent; }
.tshop-qty-val { min-width: 30px; text-align: center; font-size: 12px; font-weight: 700; color: #000; }
.tshop-item-price { flex: 0 0 auto; text-align: right; font-size: 16px; padding-left: 4px; white-space: nowrap; }
.tshop-remove {
	position: absolute; top: 6px; right: 0;
	font-size: 16px; font-weight: 700; line-height: 1; color: #999; text-decoration: none;
	opacity: 0; transition: opacity .2s;
}
.tshop-item:hover .tshop-remove, .tshop-remove:focus { opacity: 1; }
.tshop-remove:hover { color: #000; }
@media (hover: none) { .tshop-remove { opacity: 1; } }

.tshop-foot { flex: 0 0 auto; margin: 0 24px; padding: 16px 0 24px; border-top: 1px solid #dedede; }
.tshop-coupon-toggle { display: inline-block; margin: 0 0 16px; color: var(--tshop-accent, #cc9933); font-size: 16px; line-height: 1.6; text-decoration: none; }
.tshop-coupon-toggle:hover { text-decoration: underline; color: var(--tshop-accent, #cc9933); }
.tshop-coupon { display: flex; gap: 8px; margin: -6px 0 16px; }
.tshop-coupon[hidden] { display: none; }
.tshop-coupon input { flex: 1 1 auto; min-width: 0; height: 40px; padding: 0 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 15px; }
.tshop-coupon button { height: 40px; padding: 0 16px; border: 0; border-radius: 4px; background: #000; color: #fff; font-size: 14px; cursor: pointer; box-shadow: none; }
.tshop-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 0 16px; }
.tshop-coupon-row { font-size: 14px; color: #333; margin-bottom: 10px; }
.tshop-coupon-remove { font-size: 12px; color: #777; margin-left: 4px; }
.tshop-subtotal { font-size: 16px; line-height: 20px; }
.tshop-subtotal span:first-child { font-weight: 700; }
.tshop-btn {
	display: block; width: 100%; box-sizing: border-box; margin: 0;
	text-align: center; text-decoration: none; cursor: pointer;
	font-family: inherit; box-shadow: none;
}
a.tshop-checkout, a.tshop-checkout:visited {
	background: var(--tshop-accent, #cc9933); border: 1px solid var(--tshop-accent, #cc9933); border-radius: 5px;
	color: #fff; font-size: 16px; line-height: 25.6px; padding: 10px 16px; margin-bottom: 8px;
}
a.tshop-checkout:hover, a.tshop-checkout:focus { color: #fff; filter: brightness(.94); }
button.tshop-continue {
	background: #000; border: 0; border-radius: 3px;
	color: #fff; font-size: 16px; line-height: 20px; padding: 5px 16px;
}
button.tshop-continue:hover, button.tshop-continue:focus { background: #222; color: #fff; }

.tshop-form-error { margin-bottom: 1em; }

@media (max-width: 480px) {
	.tshop-head { padding: 16px 16px 8px; }
	.tshop-close { right: 10px; top: 14px; }
	.tshop-body { padding: 0 16px 12px; }
	.tshop-notices { padding: 0 16px; }
	.tshop-foot { margin: 0 16px; padding-bottom: 16px; }
}
