/*!
 * Photo Print Order - front-end styles
 *
 * Created:  2026-05-22  v1.0.0  - Drop zone, cards, sticky cart bar
 * Updated:  2026-05-22  v1.1.0  - Editor modal (crop/rotate/brightness/contrast)
 * Updated:  2026-05-24  v1.2.0  - Tool bar, red-eye markers, mat preview,
 *                                 borderless safe-zone, finish badge, discount preview
 * Updated:  2026-05-26  v1.2.1  - FIX: respect the [hidden] attribute on .ppo-modal
 *                                 and .ppo-bar so the modal does not capture clicks
 *                                 and blur the page before the user opens an editor.
 *                                 Add belt-and-braces [hidden] override for all
 *                                 components that use a display value other than block.
 */

/* ---------------------------------------------------------------------
 * Belt-and-braces: any element with [hidden] truly hides, even when its
 * normal display is flex / grid / inline-flex. Browsers' default
 * [hidden]{display:none} is overridden by any later display rule with
 * equal specificity, so we re-assert it with !important on our own
 * components. This was the v1.2.0 page-blur / no-interaction bug.
 * ------------------------------------------------------------------- */
.ppo-app [hidden],
.ppo-modal[hidden],
.ppo-bar[hidden],
.ppo-toast[hidden],
.ppo-warn-msg[hidden],
.ppo-finish-badge[hidden],
.ppo-bar-discount[hidden],
.ppo-mat-preview[hidden],
.ppo-safe-zone[hidden],
.ppo-border-slider[hidden]{display:none !important;}

.ppo-app{
	--ppo-ink:#1a1714;
	--ppo-muted:#6f6557;
	--ppo-line:#e4ddd1;
	--ppo-bg:#fbf9f4;
	--ppo-card:#ffffff;
	--ppo-accent:#9a5b34;
	--ppo-accent-dark:#7c4525;
	--ppo-good:#3f7d52;
	--ppo-warn:#b4791e;
	--ppo-block:#9a3327;
	--ppo-radius:14px;
	--ppo-shadow:0 10px 30px -18px rgba(40,30,20,.35);
	font-family:ui-sans-serif,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	color:var(--ppo-ink);
	max-width:980px;
	margin:0 auto;
}
.ppo-app *{box-sizing:border-box;}

.ppo-intro{font-size:1.05rem;color:var(--ppo-muted);margin:0 0 1.4rem;line-height:1.55;}

/* Dropzone */
.ppo-dropzone{
	border:2px dashed var(--ppo-line);
	border-radius:var(--ppo-radius);
	background:var(--ppo-bg);
	padding:3rem 1.5rem;
	text-align:center;cursor:pointer;
	transition:border-color .18s ease,background .18s ease,transform .18s ease;
	color:var(--ppo-muted);
}
.ppo-dropzone:hover,
.ppo-dropzone:focus-visible{border-color:var(--ppo-accent);background:#fff;outline:none;}
.ppo-dropzone.ppo-drag{border-color:var(--ppo-accent);background:#fff;transform:scale(1.005);}
.ppo-dropzone-inner svg{color:var(--ppo-accent);}
.ppo-dz-title{font-size:1.25rem;font-weight:600;color:var(--ppo-ink);margin:.6rem 0 .25rem;letter-spacing:-.01em;}
.ppo-dz-sub{margin:.1rem 0;font-size:.98rem;}
.ppo-dz-meta{font-size:.82rem;color:var(--ppo-muted);margin-top:.6rem;opacity:.85;}
.ppo-link{
	background:none;border:none;padding:0;font:inherit;
	color:var(--ppo-accent);font-weight:600;cursor:pointer;
	text-decoration:underline;text-underline-offset:2px;
}

/* Cards */
.ppo-list{
	display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
	gap:1.1rem;margin-top:1.5rem;
}
.ppo-card{
	background:var(--ppo-card);border:1px solid var(--ppo-line);
	border-radius:var(--ppo-radius);overflow:hidden;
	box-shadow:var(--ppo-shadow);
	display:flex;flex-direction:column;
	animation:ppo-in .35s ease both;
}
.ppo-card.ppo-blocked{
	border-color:var(--ppo-block);
	box-shadow:0 10px 30px -18px rgba(154,51,39,.45);
}
@keyframes ppo-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

.ppo-thumb{position:relative;aspect-ratio:4/3;background:#efe9dd;overflow:hidden;}
.ppo-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.ppo-thumb.ppo-loading::after{
	content:"";position:absolute;inset:0;
	background:linear-gradient(110deg,#efe9dd 30%,#f7f3ea 50%,#efe9dd 70%);
	background-size:200% 100%;animation:ppo-shimmer 1.1s linear infinite;
}
@keyframes ppo-shimmer{from{background-position:200% 0;}to{background-position:-200% 0;}}

.ppo-remove{
	position:absolute;top:.5rem;right:.5rem;
	width:30px;height:30px;border-radius:50%;
	border:none;cursor:pointer;
	background:rgba(26,23,20,.62);color:#fff;
	font-size:1rem;line-height:1;display:grid;place-items:center;
	backdrop-filter:blur(2px);
}
.ppo-remove:hover{background:rgba(26,23,20,.85);}

.ppo-edit{
	position:absolute;top:.5rem;left:.5rem;
	display:inline-flex;align-items:center;gap:4px;
	padding:.32rem .65rem .32rem .55rem;
	border-radius:999px;border:none;cursor:pointer;
	background:rgba(255,255,255,.92);color:var(--ppo-ink);
	font-size:.78rem;font-weight:600;
	backdrop-filter:blur(2px);
	box-shadow:0 2px 6px -1px rgba(0,0,0,.25);
}
.ppo-edit:hover{background:#fff;}

.ppo-badge{
	position:absolute;left:.5rem;bottom:.5rem;
	font-size:.72rem;font-weight:600;
	padding:.2rem .55rem;border-radius:999px;
	color:#fff;background:var(--ppo-good);
	letter-spacing:.01em;
}
.ppo-badge.ppo-badge-warn{background:var(--ppo-warn);}
.ppo-badge.ppo-badge-block{background:var(--ppo-block);}

.ppo-finish-badge{
	position:absolute;right:.5rem;bottom:.5rem;
	font-size:.7rem;font-weight:600;
	padding:.2rem .55rem;border-radius:999px;
	color:var(--ppo-ink);background:rgba(255,255,255,.92);
	backdrop-filter:blur(2px);
	box-shadow:0 1px 3px rgba(0,0,0,.2);
}

.ppo-card-body{padding:.95rem 1rem 1.05rem;display:flex;flex-direction:column;gap:.7rem;}
.ppo-fname{font-size:.82rem;color:var(--ppo-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ppo-field{display:flex;flex-direction:column;gap:.28rem;}
.ppo-field label{font-size:.78rem;font-weight:600;color:var(--ppo-muted);text-transform:uppercase;letter-spacing:.04em;}
.ppo-field select,
.ppo-qty input{
	width:100%;padding:.55rem .6rem;
	border:1px solid var(--ppo-line);border-radius:9px;
	background:#fff;font:inherit;color:var(--ppo-ink);
}
.ppo-field select:focus,
.ppo-qty input:focus{outline:2px solid var(--ppo-accent);outline-offset:1px;}
.ppo-row{display:flex;gap:.6rem;}
.ppo-row .ppo-field{flex:1;}
.ppo-qty{width:88px;}

.ppo-warn-msg{font-size:.78rem;line-height:1.4;padding:.5rem .65rem;border-radius:8px;border:1px solid;}
.ppo-warn-msg.ppo-warn-soft{background:#fdf6e7;border-color:#e9d49f;color:#7a5413;}
.ppo-warn-msg.ppo-warn-hard{background:#fbeae6;border-color:#e5b9b0;color:#7a2418;}

.ppo-card-foot{
	display:flex;align-items:center;justify-content:space-between;
	padding-top:.55rem;border-top:1px solid var(--ppo-line);
}
.ppo-line-price{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;}
.ppo-unavail{font-size:.85rem;color:#b03a2e;font-weight:600;}

/* Sticky bar */
.ppo-bar{
	position:sticky;bottom:14px;
	margin-top:1.6rem;
	display:flex;align-items:center;justify-content:space-between;
	gap:1rem;
	background:var(--ppo-ink);color:#fff;
	padding:1rem 1.2rem;border-radius:var(--ppo-radius);
	box-shadow:0 14px 34px -16px rgba(0,0,0,.5);
}
.ppo-bar-info{font-size:.98rem;}
.ppo-bar-info strong{font-size:1.15rem;}
.ppo-bar-discount{font-size:.85rem;opacity:.9;color:#f5d8a7;}

.ppo-btn{
	font:inherit;font-weight:600;cursor:pointer;
	border:none;border-radius:10px;
	padding:.8rem 1.5rem;
	transition:background .15s ease,transform .12s ease,opacity .15s ease;
}
.ppo-btn-primary{background:var(--ppo-accent);color:#fff;}
.ppo-btn-primary:hover:not(:disabled){background:var(--ppo-accent-dark);}
.ppo-btn-primary:active:not(:disabled){transform:translateY(1px);}
.ppo-btn-ghost{background:transparent;color:var(--ppo-ink);border:1px solid var(--ppo-line);}
.ppo-btn-ghost:hover:not(:disabled){background:#f5efe4;}
.ppo-btn:disabled{opacity:.5;cursor:not-allowed;}
.ppo-btn.ppo-busy{position:relative;color:transparent;}
.ppo-btn.ppo-busy::after{
	content:"";position:absolute;inset:0;margin:auto;
	width:18px;height:18px;border-radius:50%;
	border:2px solid rgba(255,255,255,.45);border-top-color:#fff;
	animation:ppo-spin .7s linear infinite;
}
@keyframes ppo-spin{to{transform:rotate(360deg);}}

/* Toast */
.ppo-toast{
	position:fixed;left:50%;bottom:28px;transform:translateX(-50%);
	background:var(--ppo-ink);color:#fff;
	padding:.85rem 1.3rem;border-radius:10px;
	font-size:.95rem;box-shadow:var(--ppo-shadow);
	z-index:99999;max-width:90vw;text-align:center;
}
.ppo-toast.ppo-toast-error{background:#9a3327;}
.ppo-toast.ppo-toast-good{background:var(--ppo-good);}

/* Editor modal */
.ppo-modal{
	position:fixed;inset:0;
	background:rgba(20,16,12,.78);
	z-index:99998;
	display:flex;align-items:center;justify-content:center;
	padding:1rem;backdrop-filter:blur(3px);
}
body.ppo-modal-open{overflow:hidden;}
.ppo-modal-box{
	background:var(--ppo-card);
	border-radius:var(--ppo-radius);
	width:100%;max-width:1180px;
	max-height:calc(100vh - 2rem);
	display:flex;flex-direction:column;
	box-shadow:0 30px 60px -20px rgba(0,0,0,.5);
	overflow:hidden;
	animation:ppo-modal-in .18s ease-out;
}
@keyframes ppo-modal-in{from{opacity:0;transform:scale(.97);}to{opacity:1;transform:none;}}

.ppo-modal-hdr{
	display:flex;align-items:center;justify-content:space-between;
	padding:.95rem 1.2rem;border-bottom:1px solid var(--ppo-line);
	gap:1rem;
}
.ppo-modal-title{display:flex;flex-direction:column;gap:.1rem;min-width:0;}
.ppo-modal-title strong{font-size:1.05rem;letter-spacing:-.01em;}
.ppo-modal-sub{font-size:.82rem;color:var(--ppo-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ppo-modal-close{
	background:none;border:none;font-size:1.6rem;line-height:1;
	cursor:pointer;color:var(--ppo-muted);
	width:36px;height:36px;border-radius:8px;
}
.ppo-modal-close:hover{background:#f5efe4;color:var(--ppo-ink);}

.ppo-modal-body{
	display:grid;grid-template-columns:1fr 310px;
	min-height:0;flex:1;
}
@media(max-width:760px){.ppo-modal-body{grid-template-columns:1fr;}}

.ppo-stage{
	position:relative;
	background:repeating-conic-gradient(#2a2520 0% 25%, #1f1b17 0% 50%) 50% / 28px 28px;
	overflow:hidden;
	min-height:380px;
	user-select:none;
	touch-action:none;
}
.ppo-stage.ppo-redeye-mode{cursor:crosshair;}
.ppo-canvas{position:absolute;display:block;pointer-events:none;}

/* Crop overlay */
.ppo-crop{
	position:absolute;
	border:1.5px solid #fff;
	box-shadow:0 0 0 9999px rgba(0,0,0,.55);
	cursor:move;
	box-sizing:border-box;
}
.ppo-stage.ppo-redeye-mode .ppo-crop{cursor:crosshair;}
.ppo-crop::before,
.ppo-crop::after{
	content:"";position:absolute;background:rgba(255,255,255,.35);pointer-events:none;
}
.ppo-crop::before{left:33.33%;top:0;bottom:0;width:1px;}
.ppo-crop::after{left:66.66%;top:0;bottom:0;width:1px;}

.ppo-handle{
	position:absolute;width:14px;height:14px;
	background:#fff;border:1.5px solid var(--ppo-ink);
	border-radius:3px;z-index:3;
}
.ppo-h-nw{left:-8px;top:-8px;cursor:nwse-resize;}
.ppo-h-ne{right:-8px;top:-8px;cursor:nesw-resize;}
.ppo-h-sw{left:-8px;bottom:-8px;cursor:nesw-resize;}
.ppo-h-se{right:-8px;bottom:-8px;cursor:nwse-resize;}

/* Mat preview */
.ppo-mat-preview{position:absolute;inset:0;pointer-events:none;z-index:1;}
.ppo-mat-preview[data-label]::after{
	content:attr(data-label);
	position:absolute;top:6px;left:50%;transform:translateX(-50%);
	font-size:11px;font-weight:600;color:#1a1714;
	background:rgba(255,255,255,.92);padding:2px 8px;border-radius:4px;
	white-space:nowrap;
}

/* Borderless safe zone */
.ppo-safe-zone{
	position:absolute;
	border:1.5px dashed #ffbe5b;
	pointer-events:none;z-index:2;
	box-sizing:border-box;
}
.ppo-safe-label{
	position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);
	font-size:10.5px;font-weight:600;color:#1a1714;
	background:#ffbe5b;padding:2px 7px;border-radius:4px;
	white-space:nowrap;
}

/* Red-eye dots */
.ppo-redeye-layer{position:absolute;inset:0;z-index:2;pointer-events:none;}
.ppo-redeye-dot{
	position:absolute;
	transform:translate(-50%,-50%);
	border:2px solid #ff6b5e;
	background:rgba(255,107,94,.18);
	border-radius:50%;
	cursor:pointer;
	pointer-events:auto;
	box-shadow:0 0 0 2px rgba(255,255,255,.5);
	transition:background .12s ease, transform .12s ease;
}
.ppo-redeye-dot:hover{background:rgba(255,107,94,.35);transform:translate(-50%,-50%) scale(1.08);}

/* Controls */
.ppo-ctrls{
	padding:1rem 1.1rem;
	border-left:1px solid var(--ppo-line);
	background:#fbf9f4;
	display:flex;flex-direction:column;gap:1.05rem;
	overflow-y:auto;
}
@media(max-width:760px){.ppo-ctrls{border-left:none;border-top:1px solid var(--ppo-line);}}

.ppo-ctrl-group{display:flex;flex-direction:column;gap:.45rem;}
.ppo-ctrl-label{
	font-size:.72rem;font-weight:700;color:var(--ppo-muted);
	text-transform:uppercase;letter-spacing:.05em;
	display:flex;justify-content:space-between;align-items:baseline;
}
.ppo-ctrl-val{font-variant-numeric:tabular-nums;color:var(--ppo-ink);font-weight:600;text-transform:none;}

.ppo-tool-bar{display:flex;gap:.4rem;}
.ppo-tool-btn{
	flex:1;display:inline-flex;align-items:center;gap:6px;justify-content:center;
	padding:.5rem .55rem;border:1px solid var(--ppo-line);
	background:#fff;border-radius:8px;cursor:pointer;color:var(--ppo-ink);
	font-size:.85rem;font-weight:600;
	transition:background .12s ease, border-color .12s ease;
}
.ppo-tool-btn:hover{background:#f5efe4;}
.ppo-tool-btn.ppo-tool-active{background:var(--ppo-ink);color:#fff;border-color:var(--ppo-ink);}
.ppo-tool-hint{font-size:.76rem;color:var(--ppo-muted);line-height:1.45;}

.ppo-rotate{display:flex;gap:.5rem;}
.ppo-rot-btn{
	flex:1;display:grid;place-items:center;
	padding:.55rem 0;border:1px solid var(--ppo-line);
	background:#fff;border-radius:9px;cursor:pointer;color:var(--ppo-ink);
}
.ppo-rot-btn:hover{background:#f5efe4;}

.ppo-toggle{
	display:flex;align-items:center;gap:.5rem;
	font-size:.92rem;color:var(--ppo-ink);cursor:pointer;
}
.ppo-toggle input[type="checkbox"],
.ppo-toggle input[type="radio"]{width:16px;height:16px;cursor:pointer;}
.ppo-toggle input:disabled{cursor:not-allowed;}
.ppo-toggle input:disabled + *{opacity:.5;}

.ppo-border-slider{padding-left:1.45rem;margin-top:.2rem;display:flex;flex-direction:column;gap:.35rem;}

.ppo-slider{
	-webkit-appearance:none;appearance:none;
	width:100%;height:4px;
	background:linear-gradient(to right,var(--ppo-line),var(--ppo-line));
	border-radius:2px;outline:none;
}
.ppo-slider::-webkit-slider-thumb{
	-webkit-appearance:none;appearance:none;
	width:18px;height:18px;border-radius:50%;
	background:var(--ppo-accent);border:2px solid #fff;
	box-shadow:0 1px 3px rgba(0,0,0,.3);cursor:pointer;
}
.ppo-slider::-moz-range-thumb{
	width:18px;height:18px;border-radius:50%;
	background:var(--ppo-accent);border:2px solid #fff;
	box-shadow:0 1px 3px rgba(0,0,0,.3);cursor:pointer;
}

.ppo-ctrl-quality .ppo-qbadge{
	display:inline-block;align-self:flex-start;
	font-size:.85rem;font-weight:700;
	padding:.35rem .7rem;border-radius:999px;
	color:#fff;background:var(--ppo-muted);
}
.ppo-qbadge.ppo-q-good{background:var(--ppo-good);}
.ppo-qbadge.ppo-q-warn{background:var(--ppo-warn);}
.ppo-qbadge.ppo-q-block{background:var(--ppo-block);}
.ppo-qhint{font-size:.78rem;color:var(--ppo-muted);line-height:1.45;}

.ppo-modal-foot{
	display:flex;justify-content:flex-end;gap:.7rem;
	padding:.85rem 1.2rem;border-top:1px solid var(--ppo-line);background:#fff;
}

@media(max-width:560px){
	.ppo-dropzone{padding:2.2rem 1rem;}
	.ppo-bar{flex-direction:column;align-items:stretch;text-align:center;}
	.ppo-bar > .ppo-btn{width:100%;}
	.ppo-modal{padding:0;}
	.ppo-modal-box{border-radius:0;max-height:100vh;}
}

/* ================================================================
 * v1.3.0 LIBRARY
 * ================================================================ */

/* Login prompt above dropzone (guest view) */
.ppo-login-prompt{
	display:flex;align-items:center;gap:.85rem;
	padding:.85rem 1rem;margin-bottom:1rem;
	border:1px solid var(--ppo-line);
	background:var(--ppo-bg);
	border-radius:var(--ppo-radius);
	color:var(--ppo-muted);font-size:.95rem;line-height:1.5;
}
.ppo-login-prompt svg{color:var(--ppo-accent);flex-shrink:0;}
.ppo-login-prompt strong{color:var(--ppo-ink);margin-right:.35rem;}
.ppo-login-prompt a{color:var(--ppo-accent);font-weight:600;text-decoration:underline;text-underline-offset:2px;}

/* Order-page library strip */
.ppo-library-block{
	margin-bottom:1.4rem;
	border:1px solid var(--ppo-line);
	background:#fff;
	border-radius:var(--ppo-radius);
	overflow:hidden;
}
.ppo-library-block-hdr{
	display:flex;align-items:center;justify-content:space-between;
	padding:.85rem 1rem;border-bottom:1px solid var(--ppo-line);
	background:var(--ppo-bg);
}
.ppo-library-block-hdr h3{margin:0;font-size:1.05rem;letter-spacing:-.01em;}
.ppo-library-block-hint{
	padding:.6rem 1rem 0;margin:0;
	font-size:.85rem;color:var(--ppo-muted);
}
.ppo-library-block-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(110px,1fr));
	gap:.55rem;padding:.85rem 1rem;
	max-height:280px;overflow-y:auto;
}
.ppo-library-block-foot{
	display:flex;align-items:center;justify-content:space-between;
	padding:.7rem 1rem;border-top:1px solid var(--ppo-line);
	background:var(--ppo-bg);
}
.ppo-lib-selected-count{font-size:.88rem;color:var(--ppo-muted);}

/* Small "pick" tile in the strip */
.ppo-lib-pick{
	position:relative;display:block;padding:0;border:none;cursor:pointer;
	background:#efe9dd;border-radius:8px;overflow:hidden;
	aspect-ratio:1/1;
	transition:transform .12s ease, box-shadow .12s ease;
}
.ppo-lib-pick img{
	width:100%;height:100%;object-fit:cover;display:block;
	transition:opacity .12s ease;
}
.ppo-lib-pick:hover img{opacity:.85;}
.ppo-lib-pick-check{
	position:absolute;top:6px;right:6px;
	width:22px;height:22px;border-radius:50%;
	background:rgba(255,255,255,.95);
	border:1.5px solid var(--ppo-line);
	display:grid;place-items:center;
	color:transparent;
	transition:background .12s ease, color .12s ease, border-color .12s ease;
}
.ppo-lib-pick.ppo-selected{
	box-shadow:0 0 0 3px var(--ppo-accent);
}
.ppo-lib-pick.ppo-selected .ppo-lib-pick-check{
	background:var(--ppo-accent);color:#fff;border-color:var(--ppo-accent);
}

/* Full My Photos page */
.ppo-library-page .ppo-section-title{
	margin:0 0 .4rem;letter-spacing:-.01em;
}
.ppo-library-toolbar{
	display:flex;align-items:center;justify-content:space-between;
	flex-wrap:wrap;gap:.7rem;
	padding:.8rem 0;margin-bottom:.5rem;
	border-bottom:1px solid var(--ppo-line);
}
.ppo-library-usage{font-size:.92rem;color:var(--ppo-muted);}
.ppo-library-actions{display:flex;gap:.5rem;flex-wrap:wrap;}
.ppo-btn-danger{color:var(--ppo-block) !important;border-color:var(--ppo-block) !important;}
.ppo-btn-danger:hover:not(:disabled){background:var(--ppo-block) !important;color:#fff !important;}

.ppo-library-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
	gap:1rem;margin-top:1rem;
}
.ppo-library-empty{
	grid-column:1 / -1;text-align:center;
	padding:3rem 1rem;color:var(--ppo-muted);
}
.ppo-library-empty p{margin:0 0 1rem;font-size:1rem;}

.ppo-lib-card{
	position:relative;
	background:#fff;border:1px solid var(--ppo-line);
	border-radius:var(--ppo-radius);overflow:hidden;
	box-shadow:var(--ppo-shadow);
	display:flex;flex-direction:column;
	transition:box-shadow .15s ease, transform .12s ease;
}
.ppo-library-grid.ppo-select-mode .ppo-lib-card{cursor:pointer;}
.ppo-lib-card.ppo-selected{
	box-shadow:0 0 0 3px var(--ppo-accent), var(--ppo-shadow);
}
.ppo-lib-card-thumb{
	position:relative;aspect-ratio:4/3;background:#efe9dd;overflow:hidden;
}
.ppo-lib-card-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.ppo-lib-card-check{
	position:absolute;top:.55rem;right:.55rem;
	width:28px;height:28px;border-radius:50%;
	background:rgba(255,255,255,.95);
	border:1.5px solid var(--ppo-line);
	display:none;place-items:center;color:transparent;
}
.ppo-library-grid.ppo-select-mode .ppo-lib-card-check{display:grid;}
.ppo-lib-card.ppo-selected .ppo-lib-card-check{
	background:var(--ppo-accent);color:#fff;border-color:var(--ppo-accent);
}
.ppo-lib-card-body{padding:.7rem .85rem .8rem;display:flex;flex-direction:column;gap:.3rem;}
.ppo-lib-card-title{
	font-weight:600;font-size:.95rem;
	white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ppo-lib-card-meta{font-size:.78rem;color:var(--ppo-muted);}
.ppo-lib-card-actions{
	display:flex;gap:.65rem;flex-wrap:wrap;
	padding-top:.45rem;margin-top:.2rem;
	border-top:1px solid var(--ppo-line);
}
.ppo-lib-card-actions .ppo-link{font-size:.82rem;}
.ppo-library-grid.ppo-select-mode .ppo-lib-card-actions{
	pointer-events:none;opacity:.4;
}

@media(max-width:560px){
	.ppo-library-block-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));}
	.ppo-library-toolbar{flex-direction:column;align-items:stretch;}
	.ppo-library-actions .ppo-btn{flex:1;}
}

/* ================================================================
 * v1.0.0 LIBRARY UPLOAD + VERSIONS
 * ================================================================ */

.ppo-library-page .ppo-dropzone{
	margin-bottom:1.4rem;
	padding:2rem 1.5rem;
}
.ppo-library-page .ppo-dropzone.ppo-loading{opacity:.6;pointer-events:none;}

.ppo-usage-hint{
	font-size:.78rem;color:var(--ppo-muted);
	display:block;margin-top:.15rem;
}

/* Version count badge on the master thumbnail */
.ppo-ver-count{
	position:absolute;top:.5rem;left:.5rem;
	background:var(--ppo-ink);color:#fff;
	font-size:.72rem;font-weight:700;
	padding:.15rem .5rem;border-radius:999px;
	min-width:18px;text-align:center;
	box-shadow:0 1px 3px rgba(0,0,0,.25);
}

/* Versions block under a master card */
.ppo-lib-versions{
	border-top:1px solid var(--ppo-line);
	background:#fbf9f4;
}
.ppo-lib-versions-toggle{
	width:100%;padding:.55rem .85rem;
	background:none;border:none;cursor:pointer;
	font-size:.82rem;font-weight:600;color:var(--ppo-muted);
	text-align:left;
	display:flex;align-items:center;gap:.4rem;
}
.ppo-lib-versions-toggle:hover{background:#f3ece0;color:var(--ppo-ink);}
.ppo-lib-versions-toggle .ppo-chev{transition:transform .15s ease;}
.ppo-lib-versions.ppo-expanded .ppo-lib-versions-toggle .ppo-chev{transform:rotate(180deg);}

.ppo-lib-version-list{display:flex;flex-direction:column;gap:1px;background:var(--ppo-line);}
.ppo-lib-version{
	position:relative;
	display:flex;align-items:center;gap:.65rem;
	padding:.55rem .85rem;
	background:#fff;cursor:default;
}
.ppo-library-grid.ppo-select-mode .ppo-lib-version{cursor:pointer;}
.ppo-lib-version-thumb{
	width:44px;height:44px;flex-shrink:0;
	border-radius:4px;object-fit:cover;
	background:#efe9dd;
}
.ppo-lib-version-info{flex:1;min-width:0;}
.ppo-lib-version-title{
	font-size:.85rem;font-weight:500;
	white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ppo-lib-version-meta{font-size:.72rem;color:var(--ppo-muted);}
.ppo-lib-version-actions{display:flex;gap:.5rem;}
.ppo-lib-version-actions .ppo-link{font-size:.78rem;}
.ppo-lib-version-check{
	display:none;
	position:absolute;top:50%;right:.85rem;transform:translateY(-50%);
	width:22px;height:22px;border-radius:50%;
	background:rgba(255,255,255,.95);
	border:1.5px solid var(--ppo-line);
	place-items:center;color:transparent;
}
.ppo-library-grid.ppo-select-mode .ppo-lib-version-check{display:grid;}
.ppo-library-grid.ppo-select-mode .ppo-lib-version-actions{display:none;}
.ppo-lib-version.ppo-selected .ppo-lib-version-check{
	background:var(--ppo-accent);color:#fff;border-color:var(--ppo-accent);
}
.ppo-lib-version.ppo-selected{background:#fdf6ef;}

/* ================================================================
 * v1.5.0 REGISTRATION FORM
 * ================================================================ */

.woocommerce-form-register .ppo-checkbox-row{
	margin-top:.6rem;
	font-size:.92rem;
}
.woocommerce-form-register .ppo-checkbox-row label{
	display:flex;align-items:flex-start;gap:.55rem;
	cursor:pointer;line-height:1.4;
}
.woocommerce-form-register .ppo-checkbox-row input[type="checkbox"]{
	margin-top:3px;
}
.woocommerce-form-register select.input-text{
	width:100%;
}

/* ================================================================
 * v1.4.0 CATALOG + POLISH
 * ================================================================ */

/* Preselect notice: shown when a customer arrives from a catalog product. */
.ppo-preselect-notice{
	display:flex;align-items:center;gap:.7rem;
	padding:.7rem 1rem;margin:0 0 1.1rem;
	background:#e9f1ea;border:1px solid #b9d6c0;
	border-radius:var(--ppo-radius);
	color:#1e5728;font-size:.95rem;
}
.ppo-preselect-notice svg{color:#3f7d52;flex-shrink:0;}
.ppo-preselect-notice strong{color:#1e5728;}

/* Cart thumbnail */
.ppo-cart-thumb,
.ppo-order-thumb{
	max-width:80px;height:auto;
	border-radius:6px;display:block;
	box-shadow:0 1px 3px rgba(0,0,0,.12);
}
.shop_table .ppo-cart-thumb{max-width:64px;}

/* Catalog product page "Configure your print" CTA */
.ppo-configure-cta{
	margin:1rem 0;
	padding:1rem 1.2rem;
	background:#fbf9f4;
	border:1px solid #e4ddd1;
	border-radius:10px;
}
.ppo-configure-help{
	margin:0 0 .75rem;
	font-size:.92rem;color:#6f6557;
}
.ppo-configure-cta a.button{
	background:#9a5b34;color:#fff;
	padding:.7rem 1.4rem;font-weight:600;
	text-decoration:none;border-radius:8px;
	display:inline-block;
}
.ppo-configure-cta a.button:hover{background:#7c4525;}
