/* Server-rendered pages: forms, tables, flash messages, admin extras. Builds on site.css tokens. */
.flash{margin:10px 0 0;padding:12px 16px;border-radius:14px;border:1px solid var(--edge);background:var(--glass);backdrop-filter:blur(14px)}
.flash.ok{border-color:var(--accent)}.flash.err{border-color:var(--hot)}
a.lang,a.cur{text-decoration:none}
.card{text-decoration:none;color:inherit}
.card .stage img{border-radius:12px}
.pgwrap{padding-block:26px 10px}
.pgwrap h1{font-size:clamp(26px,4vw,40px);margin:8px 0 16px}
.page-sec{padding:22px;margin-bottom:14px}
.page-sec h2{font-size:20px;margin-bottom:8px}.page-sec p{color:var(--ink2);white-space:pre-line}
.form{display:grid;gap:12px}
.form .field,.field.block{width:100%;border-radius:14px}
.form label{display:grid;gap:5px;font-size:13px;color:var(--ink2)}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form .chk{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--ink2)}
select.field{appearance:none}
textarea.field{resize:vertical;line-height:1.5}
.narrow{max-width:520px;margin:30px auto;padding:26px}
.narrow h1{font-size:26px;margin-bottom:12px}
.err-t{color:var(--hot);font-size:14px}
.split{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:start}
.panel{padding:20px;display:grid;gap:12px}
.panel h2{font-size:20px}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);text-align:start;padding:8px 10px;border-bottom:1px solid var(--edge)}
.tbl td{padding:10px;border-bottom:1px solid var(--edge);vertical-align:middle}
.tbl a{color:var(--accent)}
.tbl-wrap{overflow-x:auto}
.cart-line{display:grid;grid-template-columns:84px 1fr auto;gap:14px;align-items:center;padding:12px;border-radius:16px;background:var(--glass-hi);border:1px solid var(--edge);margin-bottom:10px}
.cart-line .stage{aspect-ratio:1;border-radius:12px}
.cart-line h3{font:700 15px var(--f-body)}
.cart-line small{color:var(--ink2)}
.inline{display:inline}
.linkbtn{border:0;background:none;color:var(--ink2);text-decoration:underline;padding:0;font:inherit;cursor:pointer}
.filters{display:grid;gap:10px;margin-bottom:14px;padding:14px}
.filters form{display:flex;gap:10px;flex-wrap:wrap}
.pager{display:flex;gap:8px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.pager a,.pager span{padding:8px 14px;border-radius:999px;border:1px solid var(--edge);text-decoration:none;color:var(--ink2)}
.pager .on{background:linear-gradient(135deg,var(--accent),var(--accent2));color:var(--on-accent);border-color:transparent;font-weight:700}
.thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.thumbs button{width:64px;height:64px;border-radius:12px;border:1px solid var(--edge);background:var(--glass-hi);padding:3px}
.thumbs img{width:100%;height:100%;object-fit:contain}
.pd .stage img{width:100%;height:100%;object-fit:contain}
.tag{display:inline-block;padding:3px 10px;border-radius:999px;border:1px solid var(--edge);font:500 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase}
.tag.ok{border-color:var(--accent);color:var(--accent)}.tag.warn{border-color:#ffc400;color:#ffc400}.tag.bad{border-color:var(--hot);color:var(--hot)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:6px 0}
.steps i{height:5px;border-radius:3px;background:var(--field)}.steps i.on{background:linear-gradient(90deg,var(--accent),var(--accent2))}
.events{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}
.events li{padding:8px 12px;border-radius:12px;background:var(--glass-hi);font-size:14px}
.events small{color:var(--ink2);display:block}
.paywrap iframe{width:100%;height:640px;border:0;border-radius:18px;background:#fff}
.honey{position:absolute;left:-9999px}
.adm nav a{display:block;text-align:start;padding:10px 12px;border-radius:12px;text-decoration:none;font-weight:500;color:var(--ink)}
.adm nav a:hover{background:var(--glass-hi)}
.adm nav a[aria-current="true"]{background:linear-gradient(135deg,var(--accent),var(--accent2));color:var(--on-accent);font-weight:700}
.adm .tbl td .btn.sm{padding:6px 12px;font-size:13px}
.adm .imgs{display:flex;gap:10px;flex-wrap:wrap}
.adm .imgs figure{margin:0;width:120px;display:grid;gap:6px}
.adm .imgs img{width:120px;height:120px;object-fit:contain;border-radius:12px;border:1px solid var(--edge);background:var(--glass-hi)}
.adm .af input[type=checkbox]{width:auto;justify-self:start}
.adm .row2{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@media (max-width:860px){.split{grid-template-columns:1fr}.form .two{grid-template-columns:1fr}.cart-line{grid-template-columns:64px 1fr}.cart-line .lp{grid-column:1/-1}}
.stage3d .fallart{--c:var(--accent)}

/* ===== checkout ===== */
.ck{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;align-items:start}
.ck .panel{padding:20px;display:grid;gap:12px}
.ck .hidden{display:none!important}
.carrier-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.carrier-opts label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--edge);border-radius:16px;background:var(--field);cursor:pointer}
.carrier-opts label:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}
.carrier-opts b{display:block}.carrier-opts small{color:var(--ink2);font-family:var(--f-mono)}
.sumrow{display:flex;justify-content:space-between;gap:10px;font-size:15px}.sumrow.tot{font-weight:700;font-size:19px;border-top:1px solid var(--edge);padding-top:10px}
.sumrow span:last-child{font-family:var(--f-mono)}
@media (max-width:900px){.ck{grid-template-columns:1fr}}
.ipay{display:grid;gap:12px;padding:16px;border-radius:18px;border:1px solid var(--accent);background:var(--glass-hi)}
.ipay h2{font-size:20px}
.ipay-rows{display:grid;gap:8px;margin:0}
.ipay-rows>div{display:grid;gap:4px;padding:10px 12px;border-radius:14px;background:var(--field);border:1px solid var(--edge)}
.ipay-rows dt{font-size:12.5px;color:var(--ink2)}
.ipay-rows dd{margin:0;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ipay-rows .mono{font:500 15px var(--f-mono);word-break:break-all}
.ipay-steps{margin:0;padding-inline-start:20px;display:grid;gap:4px;color:var(--ink2);font-size:14px}
.ipay-form{display:grid;gap:10px}
.ipay-form label{display:grid;gap:6px;font-size:14px;color:var(--ink2)}
.ipay-form .field{border-radius:14px;width:100%;color:var(--ink)}
