:root {
  --ps-denim: #1670A8; --ps-denim-deep: #07508D; --ps-sunshine: #F9B51E; --ps-sunshine-soft: #FFE39A;
  --ps-coral: #F25F6D; --ps-peach: #F28A55; --ps-mint: #69CDB8; --ps-lavender: #9C78D4; --ps-blush: #FFD1D8;
  --ps-bg: #FFF9EF; --ps-surface: #FFFFFF; --ps-surface-soft: #FFF2D2; --ps-text: #123047; --ps-text-muted: #5F7180; --ps-border: #F3D8B8;
  --ps-primary: var(--ps-denim); --ps-primary-hover: var(--ps-denim-deep); --ps-secondary: var(--ps-sunshine); --ps-accent: var(--ps-coral); --ps-success: var(--ps-mint); --ps-focus: #F9B51E;
  --ps-shadow-soft: 0 10px 30px rgba(7, 80, 141, 0.14); --ps-shadow-button: 0 5px 0 rgba(7, 80, 141, 0.25);
  --ps-radius: 24px; --ps-max: 1120px;
}
[data-theme="dark"] {
  --ps-denim: #5AB6EA; --ps-denim-deep: #2D8AC4; --ps-sunshine: #FFC83D; --ps-sunshine-soft: #6B4A12;
  --ps-coral: #FF7A88; --ps-peach: #FF9B63; --ps-mint: #7FE4D0; --ps-lavender: #B99AF2; --ps-blush: #FFB8C4;
  --ps-bg: #071A2A; --ps-surface: #0E2A40; --ps-surface-soft: #143A56; --ps-text: #FFF8EA; --ps-text-muted: #B8CCD8; --ps-border: #24516F;
  --ps-primary: var(--ps-sunshine); --ps-primary-hover: #FFD765; --ps-secondary: var(--ps-denim); --ps-accent: var(--ps-coral); --ps-success: var(--ps-mint); --ps-focus: #FFC83D;
  --ps-shadow-soft: 0 10px 30px rgba(0,0,0,.35); --ps-shadow-button: 0 5px 0 rgba(0,0,0,.3);
}
* { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin:0; font-family: ui-rounded, "Trebuchet MS", system-ui, sans-serif; color:var(--ps-text); background: radial-gradient(circle at top left, var(--ps-sunshine-soft), transparent 26rem), var(--ps-bg); line-height:1.6; }
a { color: var(--ps-primary); } a:hover { color: var(--ps-primary-hover); } :focus-visible { outline: 3px solid var(--ps-focus); outline-offset: 3px; border-radius: 10px; }
.container { width:min(100% - 2rem, var(--ps-max)); margin-inline:auto; }.skip-link { position:absolute; left:-999px; top:1rem; background:var(--ps-surface); padding:.7rem 1rem; z-index:10; }.skip-link:focus { left:1rem; }
.site-header { position:sticky; top:0; z-index:5; background: color-mix(in srgb, var(--ps-surface) 88%, transparent); backdrop-filter: blur(10px); border-bottom:2px dashed var(--ps-border); }
.header-inner { display:flex; gap:1rem; align-items:center; justify-content:space-between; padding:.8rem 0; }.brand { display:flex; align-items:center; gap:.65rem; text-decoration:none; font-weight:900; color:var(--ps-text); }.brand img { width:58px; height:58px; object-fit:contain; filter: drop-shadow(0 7px 0 rgba(7,80,141,.12)); }.brand span { font-size:1.1rem; }
.main-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:.35rem; }.main-nav a,.cart-link,.theme-toggle { border:2px solid var(--ps-border); border-radius:999px; padding:.5rem .85rem; background:var(--ps-surface); text-decoration:none; font-weight:800; color:var(--ps-text); }.main-nav a.active { background:var(--ps-sunshine); color:#123047; border-color:var(--ps-denim); }.theme-toggle { cursor:pointer; }.header-actions { display:flex; gap:.5rem; align-items:center; }
.hero { padding:4rem 0 2.5rem; }.hero-grid { display:grid; grid-template-columns: 1.15fr .85fr; gap:2rem; align-items:center; }.eyebrow { color:var(--ps-coral); font-weight:900; text-transform:uppercase; letter-spacing:.08em; }.hero h1 { font-size:clamp(2.4rem, 6vw, 5.2rem); line-height:.95; margin:.3rem 0 1rem; }.hero-card,.card,.admin-panel { background:var(--ps-surface); border:2px solid var(--ps-border); border-radius:var(--ps-radius); box-shadow:var(--ps-shadow-soft); padding:1.4rem; position:relative; }.hero-card:before,.card.stitched:before { content:""; position:absolute; inset:.6rem; border:2px dashed color-mix(in srgb, var(--ps-denim) 50%, transparent); border-radius:18px; pointer-events:none; }
.hero-card img { width:100%; max-height:330px; object-fit:contain; }.doodle-row { display:flex; gap:.6rem; flex-wrap:wrap; margin:1rem 0; }.doodle { background:var(--ps-surface-soft); border:2px solid var(--ps-border); border-radius:999px; padding:.35rem .65rem; font-weight:800; }
.button { display:inline-block; background:var(--ps-primary); color:var(--ps-bg); border:0; border-radius:999px; box-shadow:var(--ps-shadow-button); padding:.85rem 1.15rem; text-decoration:none; font-weight:900; cursor:pointer; transform:translateY(0); }.button:hover { background:var(--ps-primary-hover); color:var(--ps-bg); }.button.secondary { background:var(--ps-sunshine); color:#123047; }.button.small { padding:.55rem .85rem; font-size:.9rem; }
.section { padding:2.2rem 0; }.section-title { font-size:clamp(1.8rem,4vw,3rem); margin:0 0 1rem; }.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }.card h3 { margin-top:0; }.badge { display:inline-flex; background:var(--ps-blush); color:#123047; padding:.25rem .55rem; border-radius:999px; font-weight:900; }.notice { background:var(--ps-surface-soft); border:2px dashed var(--ps-accent); padding:1rem; border-radius:18px; }
.placeholder-visual { min-height:190px; display:grid; place-items:center; border:2px dashed var(--ps-border); border-radius:20px; background:linear-gradient(135deg, var(--ps-surface-soft), var(--ps-surface)); font-size:3rem; }
.site-footer { margin-top:3rem; padding:2rem 0 1rem; background:var(--ps-surface); border-top:2px dashed var(--ps-border); }.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:1rem; }.footer-logo { width:82px; }.footer-bottom { text-align:center; color:var(--ps-text-muted); }
.cookie-card { position:fixed; left:1rem; right:1rem; bottom:1rem; max-width:620px; margin:auto; display:flex; gap:1rem; justify-content:space-between; align-items:center; background:var(--ps-surface); border:2px solid var(--ps-border); border-radius:20px; box-shadow:var(--ps-shadow-soft); padding:1rem; z-index:20; }
.cookie-card[hidden] { display:none !important; }
.form-grid { display:grid; gap:.9rem; }.field label { display:block; font-weight:900; margin-bottom:.25rem; }.field input { width:100%; border:2px solid var(--ps-border); background:var(--ps-surface); color:var(--ps-text); border-radius:14px; padding:.8rem; }.error { background:var(--ps-blush); color:#123047; border-radius:14px; padding:.8rem; font-weight:800; }.admin-main { padding:2rem 0; }.admin-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }.admin-stat { background:var(--ps-surface-soft); border:2px solid var(--ps-border); border-radius:18px; padding:1rem; }
@media (max-width: 850px) { .hero-grid,.footer-grid { grid-template-columns:1fr; } .grid,.admin-grid { grid-template-columns:1fr; } .header-inner { flex-wrap:wrap; } .main-nav { order:3; width:100%; justify-content:flex-start; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior:auto; transition:none!important; animation:none!important; } }
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.product-card { background:var(--ps-surface); border:2px solid var(--ps-border); border-radius:var(--ps-radius); box-shadow:var(--ps-shadow-soft); overflow:hidden; position:relative; transform:rotate(-.25deg); }
.product-card:nth-child(even) { transform:rotate(.25deg); }
.product-card__visual { display:grid; place-items:center; min-height:170px; margin:.8rem; border:2px dashed var(--ps-border); border-radius:20px; background:linear-gradient(135deg, var(--ps-surface-soft), var(--ps-surface)); text-decoration:none; }
.product-card__visual span { font-size:3.4rem; filter:drop-shadow(0 6px 0 rgba(7,80,141,.12)); }
.product-card__body { padding:0 1rem 1rem; }
.product-card h3 a { color:var(--ps-text); text-decoration:none; }
.product-card--muted { filter:saturate(.55); opacity:.78; }
.product-meta { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; justify-content:space-between; }
.product-meta--large { justify-content:flex-start; font-size:1.25rem; margin:1rem 0; }
.tiny-note { color:var(--ps-text-muted); font-size:.9rem; font-weight:800; }
.mini-product-row { display:flex; flex-wrap:wrap; gap:.6rem; }
.search-form { display:flex; flex-wrap:wrap; gap:.6rem; align-items:end; margin-top:1rem; }
.search-form label { font-weight:900; width:100%; }
.search-form input, .field textarea, .field select, .field input { border:2px solid var(--ps-border); background:var(--ps-surface); color:var(--ps-text); border-radius:14px; padding:.8rem; }
.search-form input { min-width:min(100%, 320px); }
.catalogue-layout { display:grid; grid-template-columns:240px 1fr; gap:1.2rem; align-items:start; }
.filter-card { position:sticky; top:6rem; background:var(--ps-surface); border:2px solid var(--ps-border); border-radius:var(--ps-radius); padding:1rem; box-shadow:var(--ps-shadow-soft); }
.filter-card a { display:block; padding:.45rem 0; font-weight:800; text-decoration:none; }
.count-pill { display:inline-flex; min-width:2rem; justify-content:center; font-size:1rem; background:var(--ps-sunshine); color:#123047; border-radius:999px; padding:.15rem .55rem; vertical-align:middle; }
.product-detail { display:grid; grid-template-columns:.9fr 1.1fr; gap:1.5rem; align-items:start; }
.product-detail__visual .placeholder-visual { min-height:360px; font-size:5rem; }
.admin-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.admin-table { width:100%; border-collapse:separate; border-spacing:0 .6rem; }
.admin-table th { text-align:left; color:var(--ps-text-muted); }
.admin-table td { background:var(--ps-surface-soft); border-block:2px solid var(--ps-border); padding:.75rem; }
.admin-table td:first-child { border-left:2px solid var(--ps-border); border-radius:14px 0 0 14px; }
.admin-table td:last-child { border-right:2px solid var(--ps-border); border-radius:0 14px 14px 0; }
.checkbox-row { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; }
.checkbox-row label { font-weight:800; }
.form-grid.two { grid-template-columns:repeat(2, minmax(0,1fr)); }
.form-grid .full { grid-column:1 / -1; }
.success { background:color-mix(in srgb, var(--ps-mint) 35%, var(--ps-surface)); border-radius:14px; padding:.8rem; font-weight:800; }
@media (max-width: 850px) { .product-grid,.catalogue-layout,.product-detail,.form-grid.two { grid-template-columns:1fr; } .filter-card { position:static; } }

.basket-add-form { margin-top:1rem; }
.basket-shell h1 { margin-bottom:.2rem; }
.basket-list { display:grid; gap:1rem; margin:1rem 0; }
.basket-item { display:grid; grid-template-columns:80px minmax(0,1fr) 110px 130px; gap:1rem; align-items:center; background:var(--ps-surface-soft); border:2px dashed var(--ps-border); border-radius:20px; padding:1rem; }
.basket-item h2 { margin:.1rem 0; font-size:1.2rem; }
.basket-item__visual { width:70px; height:70px; display:grid; place-items:center; border-radius:18px; background:var(--ps-surface); border:2px solid var(--ps-border); font-size:2rem; }
.basket-qty input { max-width:90px; }
.basket-line-total { display:grid; gap:.6rem; justify-items:end; }
.basket-summary { margin:1rem 0; margin-left:auto; max-width:440px; background:var(--ps-surface); border:2px solid var(--ps-border); border-radius:20px; padding:1rem; }
.basket-summary p { display:flex; justify-content:space-between; gap:1rem; margin:.45rem 0; }
.basket-summary__total { border-top:2px dashed var(--ps-border); padding-top:.7rem; font-size:1.15rem; }
.checkout-disabled-form input:disabled,.checkout-disabled-form textarea:disabled,.checkout-disabled-form button:disabled { opacity:.7; cursor:not-allowed; }
.honey { position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden; }
.checkout-draft-form small { color:var(--ps-text-muted); font-weight:800; }
@media (max-width: 850px) { .basket-item { grid-template-columns:1fr; } .basket-line-total { justify-items:start; } .basket-summary { max-width:none; } }
.account-menu { position:relative; }
.account-trigger { display:flex; align-items:center; gap:.5rem; border:2px solid var(--ps-border); border-radius:999px; padding:.35rem .65rem .35rem .35rem; background:var(--ps-surface); color:var(--ps-text); font-weight:900; cursor:pointer; box-shadow:0 4px 0 color-mix(in srgb, var(--ps-denim) 16%, transparent); }
.account-avatar { width:2.1rem; height:2.1rem; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg,var(--ps-sunshine),var(--ps-blush)); color:#123047; border:2px solid var(--ps-denim); font-size:.9rem; font-weight:1000; }
.account-label { max-width:9rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-dropdown { position:absolute; right:0; top:calc(100% + .55rem); width:min(88vw, 290px); background:var(--ps-surface); border:2px solid var(--ps-border); border-radius:22px; box-shadow:var(--ps-shadow-soft); padding:1rem; z-index:30; }
.account-dropdown:before { content:""; position:absolute; inset:.45rem; border:2px dashed color-mix(in srgb, var(--ps-denim) 45%, transparent); border-radius:16px; pointer-events:none; }
.account-dropdown[hidden] { display:none !important; }
.account-dropdown a { display:block; position:relative; padding:.55rem .7rem; margin:.2rem 0; border-radius:14px; background:var(--ps-surface-soft); text-decoration:none; font-weight:900; color:var(--ps-text); }
.account-dropdown__name { margin-top:-.5rem; font-weight:900; }
.theme-switch { position:relative; display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:.8rem 0; padding:.7rem; border-radius:16px; background:var(--ps-surface-soft); font-weight:900; }
.theme-switch input { position:absolute; opacity:0; inline-size:1px; block-size:1px; }
.theme-switch__track { width:3.2rem; height:1.75rem; border-radius:999px; background:var(--ps-border); border:2px solid var(--ps-denim); position:relative; flex:0 0 auto; }
.theme-switch__track:after { content:"☀️"; position:absolute; width:1.25rem; height:1.25rem; left:.1rem; top:.1rem; display:grid; place-items:center; border-radius:50%; background:var(--ps-surface); font-size:.72rem; transition:transform .18s ease; }
.theme-switch input:checked + .theme-switch__track { background:var(--ps-denim); }
.theme-switch input:checked + .theme-switch__track:after { content:"🌙"; transform:translateX(1.45rem); }
.theme-switch input:focus-visible + .theme-switch__track { outline:3px solid var(--ps-focus); outline-offset:3px; }
.download-card { display:grid; gap:.7rem; background:var(--ps-surface-soft); border:2px dashed var(--ps-border); border-radius:20px; padding:1rem; margin:.8rem 0; }

.site-banner { background:var(--ps-sunshine); color:#123047; border-bottom:2px dashed var(--ps-denim); padding:.75rem 0; font-weight:900; }
.site-banner--holiday { background:var(--ps-blush); }
.review-stars { color:var(--ps-sunshine); letter-spacing:.08em; font-size:1.2rem; font-weight:1000; }
.search-form select { border:2px solid var(--ps-border); background:var(--ps-surface); color:var(--ps-text); border-radius:14px; padding:.8rem; }
