*{-webkit-tap-highlight-color:transparent}
a,button,.btn,summary,label,.tabs a,.tabs-s a,.fab,.fw-item,.nav-btn,nav a,.side a,.sl{touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
input,textarea,select,.allow-select{-webkit-user-select:text;user-select:text}
a:focus,button:focus,summary:focus{outline:none}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--o);outline-offset:2px}
@media (hover:none){ .btn:hover,.card:hover{transform:none!important} }

/* Store Bot Hosting & Coupon Extensions */
.coupon-box {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.coupon-box input {
  flex: 1;
  min-width: 0;
  background: var(--bg);
  border: 1px solid var(--line2);
  color: var(--tx);
  border-radius: 10px;
  padding: 10px 12px;
  outline: none;
  text-transform: uppercase;
  font-family: var(--font-mono, monospace);
  font-weight: 600;
  letter-spacing: .5px;
}
.discount-line {
  color: var(--ok, #35d07f);
  font-weight: 600;
}

/* Modal styles for Logs & Restore confirmation */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .85);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.modal-overlay.hide {
  display: none !important;
}
.modal-card {
  background: var(--panel, var(--panel));
  border: 1px solid var(--line, var(--line));
  border-radius: 14px;
  width: 100%;
  max-width: 640px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, .6);
}
.modal-head {
  padding: 14px 18px;
  border-bottom: 1px solid var(--line, var(--line));
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.modal-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
}
.modal-body {
  padding: 18px;
  overflow-y: auto;
  font-size: 14px;
}
.modal-foot {
  padding: 12px 18px;
  border-top: 1px solid var(--line, var(--line));
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.log-pre {
  background: #0a0e16;
  color: #8be9fd;
  border: 1px solid #1a1a24;
  border-radius: 8px;
  padding: 12px;
  font-size: 12px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 480px;
  overflow-y: auto;
  font-family: var(--font-mono, monospace);
}

/* Plan card badges & comparisons */
.plan-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.plan-badge.free {
  background: rgba(154, 148, 139, .15);
  color: var(--mut, #9a948b);
  border: 1px solid rgba(154, 148, 139, .3);
}
.plan-badge.paid {
  background: rgba(230,81,0, .15);
  color: var(--o, #e65100);
  border: 1px solid rgba(230,81,0, .35);
}

/* Runner Offline Alert Banner */
.runner-banner {
  background: rgba(239, 68, 68, .12);
  border: 1px solid rgba(239, 68, 68, .35);
  color: #fca5a5;
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
}

/* Details toggle list */
details.used-by-drawer summary {
  cursor: pointer;
  color: var(--o, #e65100);
  font-weight: 500;
}
details.used-by-drawer summary:hover {
  text-decoration: underline;
}

/* Mobile wrap guarantee for codes */
.mono-wrap {
  word-break: break-all;
  overflow-wrap: break-word;
}

/* ===== Setup page: stepper, token box, photo upload ===== */
.stepper{display:flex;align-items:center;gap:8px;margin:0 0 22px;flex-wrap:wrap}
.stepper b{flex:1;min-width:14px;height:2px;background:var(--line2,var(--line2));border-radius:2px;position:relative;overflow:hidden}
.stepper b::after{content:"";position:absolute;inset:0;background:var(--o);transform:scaleX(0);transform-origin:left;transition:transform .5s}
.stepper b.on::after{transform:scaleX(1)}
.stepper .st{display:flex;align-items:center;gap:8px;color:var(--dim,#6b665e);font:600 12.5px var(--m,monospace);letter-spacing:.06em;text-transform:uppercase;transition:.3s}
.stepper .st i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line2,var(--line2));font-style:normal;font-size:12px;transition:.3s}
.stepper .st.on{color:#fff}.stepper .st.on i{border-color:var(--o);color:var(--o);box-shadow:0 0 14px var(--glow)}
.stepper .st.ok i{background:var(--ok,#35d07f);border-color:var(--ok,#35d07f);color:#00170b}
@media(max-width:520px){.stepper .st span{display:none}}

.tokbox{border:1px solid var(--line2,var(--line2));border-radius:14px;padding:16px;margin-bottom:18px;background:linear-gradient(180deg,rgba(230,81,0,.06),rgba(255,255,255,.01));position:relative;overflow:hidden;transition:border-color .25s,box-shadow .25s}
.tokbox:focus-within{border-color:var(--o);box-shadow:0 0 0 3px rgba(230,81,0,.12),0 0 30px -8px var(--glow)}
.tokbox.good{border-color:rgba(53,208,127,.55)}.tokbox.bad{border-color:rgba(239,68,68,.55);animation:shake .35s}
@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.tok-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.tok-head b{display:block;font-size:15px}.tok-head small{color:var(--dim,#6b665e);font-size:12.5px}
.tok-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:rgba(230,81,0,.12);color:var(--o);flex:none}
.tok-state{margin-left:auto;font:600 11.5px var(--m,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--dim,#6b665e)}
.tokbox.good .tok-state{color:var(--ok,#35d07f)}.tokbox.bad .tok-state{color:#f87171}
.tok-field{display:flex;gap:8px}
.tok-field input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line2,var(--line2));color:#fff;border-radius:11px;padding:14px;font:500 16px var(--m,monospace);outline:none;letter-spacing:.02em}
.tok-field input:focus{border-color:var(--o)}
.tok-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line2,var(--line2));background:rgba(255,255,255,.03);color:var(--o2,#f05a0a);border-radius:11px;padding:0 14px;cursor:pointer;font:600 13.5px var(--f,sans-serif);transition:.15s}
.tok-btn:active{transform:scale(.95)}
.tok-bar{height:3px;background:var(--panel2);border-radius:3px;margin-top:12px;overflow:hidden}
.tok-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--o2),var(--o3));transition:width .25s,background .25s;box-shadow:0 0 10px var(--glow)}
.tokbox.good .tok-bar i{background:var(--ok,#35d07f);box-shadow:0 0 10px rgba(53,208,127,.5)}
.tok-hint{margin-top:8px;font-size:12.5px;color:var(--dim,#6b665e)}.tokbox.bad .tok-hint{color:#f87171}.tokbox.good .tok-hint{color:var(--ok,#35d07f)}
.tok-steps{display:grid;gap:4px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line2,var(--line2));font-size:12.5px;color:var(--mut,#9a948b)}

.pu-drop{display:flex;align-items:center;gap:16px;padding:16px;border:1.5px dashed var(--line2,var(--line2));border-radius:14px;cursor:pointer;transition:.2s;background:rgba(255,255,255,.015);flex-wrap:wrap}
.pu-drop:hover,.pu-drop.drag,.pu-drop:focus-visible{border-color:var(--o);background:rgba(230,81,0,.06);outline:none}
.pu-drop.drag{transform:scale(1.01)}
.pu-ring{position:relative;width:92px;height:92px;flex:none}
.pu-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.pu-ring circle{fill:none;stroke-width:4}.pu-ring .t{stroke:var(--panel2)}
.pu-ring .p{stroke:var(--o);stroke-linecap:round;transition:stroke-dashoffset .2s linear;filter:drop-shadow(0 0 6px var(--glow))}
.pu-ring.up .t{animation:puPulse 1s ease-in-out infinite}
@keyframes puPulse{50%{stroke:rgba(230,81,0,.4)}}
.pu-av{position:absolute;inset:8px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--panel2);color:var(--o)}
.pu-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.25);filter:blur(8px);transition:opacity .6s,transform .8s cubic-bezier(.2,.8,.2,1),filter .8s}
.pu-av img.show{opacity:1;transform:scale(1);filter:none}
.pu-ph{animation:puFloat 2.2s ease-in-out infinite}
@keyframes puFloat{50%{transform:translateY(-4px)}}
.pu-av.has .pu-ph{display:none}
.pu-scan{position:absolute;left:0;right:0;height:2px;top:0;background:linear-gradient(90deg,transparent,var(--o2),transparent);box-shadow:0 0 12px var(--o);opacity:0}
.pu-ring.up .pu-scan{opacity:1;animation:puScan 1.1s ease-in-out infinite}
@keyframes puScan{0%{top:0}50%{top:calc(100% - 2px)}100%{top:0}}
.pu-ring.up .pu-av img{filter:blur(3px) brightness(.8)}
.pu-done{position:absolute;inset:0;display:grid;place-items:center;background:rgba(53,208,127,.28);color:#fff;opacity:0;transform:scale(.4);pointer-events:none}
.pu-ring.ok .pu-done{animation:puPop 1.2s forwards}
@keyframes puPop{0%{opacity:0;transform:scale(.4)}30%{opacity:1;transform:scale(1.1)}60%{transform:scale(1)}100%{opacity:0;transform:scale(1)}}
.pu-ring.ok .p{stroke:var(--ok,#35d07f);filter:drop-shadow(0 0 7px rgba(53,208,127,.6))}
.pu-txt{flex:1;min-width:160px}.pu-txt b{display:block;font-size:14.5px}.pu-txt small{color:var(--dim,#6b665e);font-size:12.5px}
.pu-prog{height:5px;background:var(--panel2);border-radius:5px;margin-top:10px;overflow:hidden}
.pu-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--o2),var(--o3));position:relative;transition:width .2s}
.pu-prog i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:puShine 1s linear infinite}
@keyframes puShine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

/* provisioning: bot photo avatar inside deploy ring */
.ring .pc.has-av{display:none}
.prov-av{position:absolute;inset:26px;border-radius:50%;overflow:hidden;display:none;box-shadow:0 0 30px var(--glow)}
.prov-av img{width:100%;height:100%;object-fit:cover;animation:provBreath 2.4s ease-in-out infinite}
@keyframes provBreath{50%{transform:scale(1.06)}}
.ring.with-av .prov-av{display:block}
.ring.with-av .pc{inset:auto;left:0;right:0;bottom:-30px;font-size:22px}
.ring.with-av{margin-bottom:46px}

/* ===== Zoom lock ===== */
html,body{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;text-size-adjust:100%}
input,select,textarea,.f input,.f select,.f textarea,.inp{font-size:16px!important}

/* ===== Installer ===== */
.ichk{display:grid;gap:8px}.ichk>div{display:flex;gap:10px;align-items:center;font-size:14px}.ichk .sp{flex:1}
.ichk .warnc{color:var(--warn,#ffc233)}
.drv{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.drv-o{display:block;border:1px solid var(--line2,var(--line2));border-radius:12px;padding:14px;cursor:pointer;transition:.2s}
.drv-o b{display:block;font-size:15px}.drv-o small{color:var(--dim,#6b665e);font-size:12.5px}
.drv-o.on{border-color:var(--o);background:rgba(230,81,0,.07);box-shadow:0 0 22px -10px var(--glow)}
.g2i{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.g2i,.drv{grid-template-columns:1fr}}
.itest{margin-top:12px;padding:11px 14px;border-radius:10px;font-size:14px;border:1px solid var(--line2,var(--line2))}
.itest.ok{border-color:rgba(53,208,127,.45);background:rgba(53,208,127,.08);color:var(--ok,#35d07f)}
.itest.bad{border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.08);color:#fca5a5}
.pwbar{height:4px;background:var(--panel2);border-radius:4px;margin-top:8px;overflow:hidden}.pwbar i{display:block;height:100%;width:0;transition:.25s;background:#ef4444}
.iprog{margin-top:18px}

/* ===== Google login button ===== */
.btn-google{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:12px 18px;border-radius:11px;background:#fff;color:#1f1f1f;font:600 15px var(--f,sans-serif);text-decoration:none;border:1px solid #dadce0;transition:.15s}
.btn-google:hover{background:#f6f7f8;box-shadow:0 4px 18px -6px rgba(255,255,255,.25)}.btn-google:active{transform:scale(.98)}
.or-line{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--dim,#6b665e);font:12px var(--m,monospace);letter-spacing:.12em;text-transform:uppercase}
.or-line::before,.or-line::after{content:"";flex:1;height:1px;background:var(--line2,var(--line2))}
.copybox{display:flex;gap:8px}.copybox input{flex:1;font-family:var(--m,monospace)!important;font-size:13px!important}
.ann.maint-on{background:#7f1d1d;color:#fff;text-align:center}.ann.maint-on a{color:#ffd9b0;text-decoration:underline;margin-left:8px}
.iprog .plist div.done .d::after{content:"✓";font-size:12px;font-weight:700}
.iprog .plist div.run .d{animation:puPulse 1s infinite}

.coupon-box input:focus{border-color:var(--o);box-shadow:0 0 0 3px rgba(230,81,0,.15)}

/* ==================== PLAN UPGRADE ==================== */
.upg-card{border-color:rgba(230,81,0,.28);background:linear-gradient(180deg,rgba(230,81,0,.06),transparent 62%),var(--panel);margin-bottom:22px}
.upg-card .amt{font:700 30px var(--f);color:var(--tx);letter-spacing:-.02em}
.upg-list{list-style:none;display:grid;gap:8px;font-size:14px;padding:0}
.upg-list li{display:flex;gap:9px;align-items:flex-start;line-height:1.45}
.upg-list li>svg{color:var(--ok);flex:none;margin-top:2px}
.upg-alt{display:block;text-align:center;margin-top:10px;font-size:13px;color:var(--mut);text-decoration:none}
.upg-alt:hover{color:var(--o)}
.upg-alt.inline{display:inline-block;margin:0 0 0 10px;color:var(--o2);font-weight:600}
.upg-sum{margin:16px 0;padding:14px 16px;border:1px solid var(--line2);border-radius:var(--r);background:var(--panel2)}
.upg-ft{display:flex;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.upg-arrow{color:var(--o);font-weight:700}
.upg-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px}
.upg-row b{font-family:var(--m);font-weight:600}
.upg-cr{color:var(--ok)}
.upg-row.tot{border-bottom:0;font-weight:700;font-size:16px;padding-top:12px}
.upg-note{display:flex;gap:8px;align-items:flex-start;color:var(--mut);font-size:12.5px;line-height:1.5;margin-top:6px}
.upg-note svg{flex:none;margin-top:2px}

/* ==================== FLIENT AI CODE PANEL ==================== */
:root{--aipw:max(440px,min(50vw,760px))}
.aip-launch{position:relative}
.aip-launch.err::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--bad);margin-left:2px;box-shadow:0 0 0 0 rgba(255,107,107,.6);animation:aipPulse 1.6s infinite}
@keyframes aipPulse{70%{box-shadow:0 0 0 9px rgba(255,107,107,0)}100%{box-shadow:0 0 0 0 rgba(255,107,107,0)}}
.aip{position:fixed;z-index:210;top:0;right:0;bottom:0;width:var(--aipw);display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--line2);box-shadow:-30px 0 80px -30px #000;transform:translateX(104%);visibility:hidden;transition:transform .38s var(--ease,cubic-bezier(.22,.8,.24,1)),visibility 0s linear .38s}
.aip.open{transform:none;visibility:visible;transition:transform .38s var(--ease,cubic-bezier(.22,.8,.24,1)),visibility 0s}
.aip-scrim{display:none;position:fixed;inset:0;z-index:205;background:rgba(5,8,14,.55);backdrop-filter:blur(2px)}
.aip-h{display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--panel2)}
.aip-logo{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--o2),var(--o3));box-shadow:0 8px 22px -8px var(--o);flex:none}
.aip-t{min-width:0}.aip-t b{display:block;font-size:15.5px;letter-spacing:.01em}
.aip-t small{display:block;color:var(--mut);font-size:12px;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aip-ib{background:none;border:1px solid transparent;color:var(--mut);width:34px;height:34px;border-radius:9px;cursor:pointer;display:grid;place-items:center;flex:none}
.aip-ib:hover{color:var(--tx);border-color:var(--line2);background:var(--bg2)}.aip-ib[hidden]{display:none}
.aip-ctx{display:flex;gap:8px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line);color:var(--mut);font-size:12.5px;min-height:36px}
.aip-ctx svg{flex:none}.aip-ctx span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aip-b{flex:1;min-height:0;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.aip-m{max-width:92%;padding:11px 14px;border-radius:14px;font-size:14.5px;line-height:1.55;overflow-wrap:anywhere;}
.aip-m.a{background:var(--panel2);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}
.aip-m.u{background:var(--o);color:var(--on-o);border-bottom-right-radius:4px;align-self:flex-end;font-weight:600;white-space:pre-wrap}
.aip-m.t{color:var(--mut)}.aip-m.e{border-color:rgba(255,107,107,.4);color:var(--bad)}
.aip-m code{font:12.5px var(--m);background:var(--bg);border:1px solid var(--line);padding:1px 6px;border-radius:6px}
.aip-code{margin:8px 0 2px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;overflow:auto;font:12.5px/1.55 var(--m);white-space:pre;}
.aip-dots{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}
.aip-dots i{width:6px;height:6px;border-radius:50%;background:var(--o);animation:aipd 1s infinite ease-in-out}
.aip-dots i:nth-child(2){animation-delay:.15s}.aip-dots i:nth-child(3){animation-delay:.3s}
@keyframes aipd{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.aip-prop{align-self:stretch;border:1px solid rgba(230,81,0,.35);background:linear-gradient(180deg,rgba(230,81,0,.07),transparent),var(--panel2);border-radius:14px;padding:14px}
.aip-prop h4{font-size:14.5px;display:flex;align-items:center;gap:8px;margin-bottom:10px}
.aip-prop h4 svg{color:var(--o)}
.aip-file{border:1px solid var(--line);border-radius:10px;background:var(--bg);margin-bottom:8px;overflow:hidden}
.aip-fh{display:flex;align-items:center;gap:8px;padding:9px 11px;cursor:pointer;font:13px var(--m)}
.aip-fh .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aip-st{font:700 10.5px var(--f);letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:6px;flex:none}
.aip-st.new{background:rgba(60,207,142,.14);color:var(--ok)}.aip-st.modified{background:rgba(108,180,255,.14);color:var(--info)}
.aip-pm{font:12px var(--m);color:var(--mut);flex:none}.aip-pm b.p{color:var(--ok)}.aip-pm b.m{color:var(--bad)}
.aip-diff{display:none;border-top:1px solid var(--line);max-height:230px;overflow:auto;font:12px/1.55 var(--m);padding:8px 0}
.aip-file.open .aip-diff{display:block}
.aip-diff div{padding:0 11px;white-space:pre;color:var(--ok);background:rgba(60,207,142,.07)}
.aip-diff em{display:block;padding:5px 11px;color:var(--mut);font-style:normal}
.aip-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.aip-warn{font-size:12.5px;color:var(--warn);margin-top:10px;line-height:1.5}
.aip-ok{display:flex;gap:8px;align-items:center;color:var(--ok);font-weight:600;font-size:13.5px;margin-top:10px}
.aip-chips{display:flex;gap:8px;padding:10px 16px 0;overflow-x:auto;scrollbar-width:none;flex:none}
.aip-chips::-webkit-scrollbar{display:none}
.aip-chips button{flex:none;border:1px solid var(--line2);background:var(--bg2);color:var(--tx);font:600 12.5px var(--f);padding:7px 13px;border-radius:999px;cursor:pointer;white-space:nowrap}
.aip-chips button:hover{border-color:var(--o);color:var(--o2)}
.aip-f{display:flex;gap:8px;align-items:flex-end;padding:12px 16px calc(14px + env(safe-area-inset-bottom,0px));flex:none}
.aip-f textarea{flex:1;resize:none;max-height:130px;background:var(--bg);border:1px solid var(--line2);color:var(--tx);border-radius:12px;padding:11px 14px;font:14.5px/1.4 var(--f);outline:none;-webkit-user-select:text;user-select:text}
.aip-f textarea:focus{border-color:var(--o)}.aip-f textarea:disabled{opacity:.6}
.aip-send{width:44px;height:44px;border-radius:12px;border:0;background:var(--o);color:var(--on-o);cursor:pointer;display:grid;place-items:center;flex:none}
.aip-send:disabled{opacity:.5;cursor:default}
body.aip-open .fw{display:none}
@media(min-width:961px){
  .mainc{transition:margin-right .38s var(--ease,cubic-bezier(.22,.8,.24,1))}
  body.aip-open .mainc{margin-right:var(--aipw)}
  .aip-mob{display:none!important}
}
@media(max-width:960px){
  .aip{top:auto;left:0;right:0;width:auto;height:52vh;height:52dvh;border-left:0;border-top:1px solid var(--line2);border-radius:18px 18px 0 0;box-shadow:0 -24px 70px -20px #000;transform:translateY(104%)}
  .aip.open{transform:none}
  .aip.big{height:92vh;height:92dvh}
  .aip-t small{max-width:46vw}
  body.aip-open .aip-scrim{display:block}
  body.aip-open{overflow:hidden}
  .aip-m{max-width:96%}
}

/* Admin-managed HTML banner slots */
.custom-banner{width:min(100% - 28px,1180px);margin:16px auto;position:relative;z-index:1;overflow:hidden;border-radius:14px}
.custom-banner img,.custom-banner video,.custom-banner iframe{max-width:100%;height:auto}
.custom-banner-top{margin-top:12px}.custom-banner-bottom{margin-bottom:22px}
.custom-banner :where(img,video,iframe){display:block;max-width:100%}

/* FLIENT AI image attachment */
.aip-attach-row{display:flex;align-items:center;gap:8px;padding:7px 16px 0;color:var(--mut);font-size:12px}.aip-attach-row[hidden]{display:none}.aip-attach-row button{border:0;background:transparent;color:var(--bad);font-size:20px;cursor:pointer}.aip-attach{width:44px;height:44px;border:1px solid var(--line2);background:var(--bg2);color:var(--tx);border-radius:12px;display:grid;place-items:center;cursor:pointer;flex:none}.aip-attach:disabled{opacity:.5}

/* ==================== SUPPLIER DOCUMENTATION CARD ==================== */
.sup-card textarea{width:100%;min-height:150px;resize:vertical;font:12.5px/1.5 var(--m,ui-monospace,monospace);background:var(--bg2);color:var(--tx);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;outline:0}
.sup-card textarea:focus{border-color:var(--o)}
.sup-card textarea:disabled{opacity:.55}
.sup-res{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}
.sup-rows>div{display:flex;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13px}
.sup-rows>div:last-child{border-bottom:0}
.sup-rows span{flex:0 0 118px;color:var(--mut)}
.sup-rows b{font-weight:600;word-break:break-all;min-width:0}
.sup-notes{margin:10px 0 0;padding-left:18px;color:var(--mut);font-size:12.5px}
.sup-notes li{margin:3px 0}
@media(max-width:560px){.sup-rows>div{flex-direction:column;gap:2px}.sup-rows span{flex:none}}

/* =====================================================================
   v19 GLOBAL LAYER  (loaded last: header sizing, typography, protection)
   ===================================================================== */
:root{
  --o:#e65100;--o2:#f05a0a;--o3:#c43e00;--glow:rgba(230,81,0,.25);--on-o:#fff;
  --hdr:60px;            /* console top bar content height */
  --hdr-nav:64px;        /* guest nav height */
  --sat:env(safe-area-inset-top,0px);
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}
img,svg,video,canvas,iframe{max-width:100%}
img{height:auto}
img[width][height]{height:auto}
.shell,.mainc,main,.wrap,.card,.am,.page{min-width:0}
pre,textarea{max-width:100%}
pre{overflow:auto;-webkit-overflow-scrolling:touch}
table{max-width:100%}
.tbl,.tbl-wrap,.table-wrap,.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.kv b,.kv span,td,th{overflow-wrap:anywhere}

/* ---------- 1. HEADER: fixed intrinsic size, never stretches ---------- */
.topbar{
  flex:0 0 auto;align-self:stretch;
  height:calc(var(--hdr) + var(--sat))!important;min-height:calc(var(--hdr) + var(--sat))!important;max-height:calc(var(--hdr) + var(--sat))!important;
  padding:var(--sat) 16px 0!important;margin:0!important;gap:10px!important;
  display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden;
}
.topbar>*{flex:0 0 auto;margin:0}
.topbar>.sp{flex:1 1 auto;min-width:0;height:auto}
.topbar .nav-btn,.topbar .avatar{width:40px!important;height:40px!important;min-width:40px;border-radius:10px;padding:0;line-height:1}
.topbar .brand{display:none;flex:0 1 auto;min-width:0;gap:8px;font-size:16px;line-height:1}
.topbar .brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:960px){.topbar .brand{display:flex}.topbar{padding-left:14px!important;padding-right:14px!important}}

.nav{height:calc(var(--hdr-nav) + var(--sat));padding-top:var(--sat);flex:0 0 auto}
.nav .wrap{height:var(--hdr-nav)!important;min-height:var(--hdr-nav);max-height:var(--hdr-nav);flex-wrap:nowrap;align-items:center;padding-top:0;padding-bottom:0}
.nav .brand{flex:0 1 auto;min-width:0;line-height:1}
.nav .brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-btn{flex:0 0 auto;width:40px;height:40px;padding:0;line-height:1}
.nav .links{flex-wrap:nowrap;white-space:nowrap}
@media(max-width:640px){.nav .links{top:calc(var(--hdr-nav) + var(--sat))!important;max-height:calc(100vh - var(--hdr-nav) - var(--sat));overflow:auto}.toasts{top:calc(var(--hdr) + var(--sat) + 8px)!important}}
.brand img,.logo-img{width:auto;max-width:44px;height:auto;max-height:36px;flex:none;object-fit:contain}
.topbar .brand img{max-height:28px}
.avatar{line-height:1}
/* crumbs spacing: compact, predictable */
.wrap[style*="padding-top:22px"]{padding-top:16px!important}
.crumbs{margin-bottom:10px!important;line-height:1.3;flex-wrap:wrap}
/* empty/whitespace announcement or banner slots must never reserve space */
.ann:empty,.custom-banner:empty,main:empty{display:none!important}
.custom-banner-top{margin-top:8px;margin-bottom:8px}
/* admin mobile bar */
@media(max-width:960px){.side{align-items:center}.side .brand{flex:1 0 100%}.side a,.side button.sl{flex:0 0 auto;white-space:nowrap}}

/* ---------- 2. TYPOGRAPHY: strong but readable ---------- */
body{font-weight:500;font-synthesis:weight style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;line-height:1.55}
p,li,td,small,.mut,.dim{font-weight:500}
h1,h2,h3,h4,.h1,.h2,.h3{font-weight:700;letter-spacing:-.015em;line-height:1.15}
h1,h1.big,.welcome h1{letter-spacing:-.03em}
h4{font-size:1.05em}
b,strong,th,dt,legend{font-weight:700}
.btn,button,.tabs a,.tabs-s a,.ptabs a,.seg a,.badge,.chip,.tag,.pill,label,.f label,.grp,.sidebar a,.sidebar button.sl,.side a,.side button.sl,.links a,.brand,.crumbs b,.avatar,.price .amt,.stats b,.kv b,summary,.msg.u,.aip-m.u{font-weight:700}
.btn{letter-spacing:.01em}
input,select,textarea{font-weight:600;font-family:var(--f)}
input::placeholder,textarea::placeholder{font-weight:500}
code,.mono,pre{font-weight:600}
/* selective italic: accents only, never body copy */
h1 .or,h1 .grad,h2 .or,h2 .grad,h3 .or,.welcome h1 .or,.welcome h1 span,h1 em,h2 em,.price .amt small,.stats span,.crumbs b,.badge,.eyebrow,.tok-hint,.sec-sub,.lead{font-style:italic}
h1 em,h2 em{font-weight:inherit}
.crumbs b{font-style:italic}
input,textarea,select,.btn,button,code,pre,.mono,.avatar,.nav-btn{font-style:normal}
.price .amt,.stats b,.stats span{font-style:normal}

/* ---------- 3 & 5. CASUAL COPY / IMAGE DETERRENTS (CSS layer) ---------- */
html,body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
input,textarea,select,[contenteditable="true"],[contenteditable=""],.allow-select,.allow-select *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
input[type=button],input[type=submit],input[type=checkbox],input[type=radio]{-webkit-user-select:none;user-select:none}
img,svg,picture,video,canvas,.logo-img,.qr,.qr *{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
img{-webkit-user-drag:none}
.qr img{pointer-events:none}
::selection{background:var(--o);color:#fff}

/* ---------- 4. COPY BUTTON SYSTEM ---------- */
.cp-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-width:0}
.cp-row>.cp-val{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;font-family:var(--m);font-weight:600}
.cp-btn{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;white-space:nowrap;cursor:pointer;
  background:var(--panel2);color:var(--o2);border:1px solid var(--line2);border-radius:9px;padding:7px 12px;font:700 13px var(--f);transition:background .2s,border-color .2s,transform .15s}
.cp-btn:hover{border-color:var(--o);background:rgba(230,81,0,.12)}
.cp-btn:active{transform:scale(.96)}
.cp-btn .ic{width:15px;height:15px}
.cp-btn.done{background:rgba(60,207,142,.14);border-color:var(--ok);color:var(--ok)}
.cp-wrapbox{position:relative}
.cp-wrapbox>.cp-btn{position:absolute;top:8px;right:8px;z-index:2;padding:5px 10px;font-size:12px}
.cp-wrapbox>pre{padding-top:42px}
.cp-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,16px);opacity:0;z-index:400;display:flex;gap:8px;align-items:center;
  background:#10281f;color:#7ee2b4;border:1px solid var(--ok);border-radius:12px;padding:10px 16px;font:700 14px var(--f);box-shadow:0 14px 40px -12px #000;pointer-events:none;transition:opacity .25s,transform .25s}
.cp-toast.on{opacity:1;transform:translate(-50%,0)}
.cp-toast .ic{width:16px;height:16px}

/* ---- ROOT-CAUSE FIX: drawer scrim must never be an in-flow grid row ---- */
.scrim{position:fixed!important;inset:0;z-index:110;background:rgba(0,0,0,.6);display:block!important;opacity:0;visibility:hidden;pointer-events:none!important;transition:opacity .3s,visibility .3s}
body.side-open .scrim{opacity:1;visibility:visible;pointer-events:auto!important}
.shell{align-content:start;grid-template-rows:minmax(0,1fr)}
.mainc{min-height:100vh;min-height:100dvh}
@media(max-width:960px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto}.mainc{grid-column:1}}

/* Terms & Conditions page */
.legal{min-height:100vh;padding:28px 16px 60px;display:flex;justify-content:center}
.legal-card{width:100%;max-width:760px}
.legal-brand{display:inline-flex;align-items:center;gap:10px;font:700 18px var(--f);color:var(--tx);text-decoration:none;margin-bottom:24px}
.legal h1{font-size:clamp(28px,5vw,40px);margin:0 0 8px}
.legal section{margin-top:26px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.legal h2{font-size:18px;margin:0 0 12px}
.legal ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.legal li{display:flex;gap:10px;align-items:flex-start;line-height:1.55;font-size:14.5px;color:var(--mut)}
.legal li>svg{color:var(--o);flex:none;margin-top:3px}
.legal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.terms-link{color:var(--o2);text-decoration:underline;text-underline-offset:3px;font-weight:600}
.terms-link:hover{color:var(--o)}
footer .flinks{display:flex;gap:16px;flex-wrap:wrap}
footer .flinks a{color:var(--dim);text-decoration:none}
footer .flinks a:hover{color:var(--o)}
