/*!
 * WebSEO App — Cart, Toast, Domain Check, Animations
 */

/* ═══ CART ICON BADGE ═══ */
.ws-cart-link{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:10px;background:var(--c-accent-s);color:var(--c-accent-d);font-weight:700;font-size:13px;text-decoration:none;transition:all var(--tr);border:1px solid var(--c-accent-10);position:relative;margin-right:6px}
.ws-cart-link:hover{background:var(--c-accent);color:#fff;border-color:transparent;box-shadow:var(--sh-accent)}
.ws-cart-link .material-symbols-outlined{font-size:18px}
.ws-cart-badge{min-width:20px;height:20px;padding:0 6px;border-radius:20px;background:var(--c-accent);color:#fff;font-size:11px;font-weight:800;display:none;align-items:center;justify-content:center;line-height:1;box-shadow:0 2px 6px rgba(245,158,11,.4)}
.ws-cart-badge.has-items{display:inline-flex;animation:bump .4s cubic-bezier(.4,0,.2,1)}
.ws-cart-link:hover .ws-cart-badge{background:#fff;color:var(--c-accent-d)}
@keyframes bump{0%{transform:scale(1)}30%{transform:scale(1.3)}100%{transform:scale(1)}}

/* ═══ TOAST ═══ */
.ws-toast-host{position:fixed;top:80px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:calc(100vw - 40px)}
.ws-toast{background:#fff;padding:14px 20px;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.15);font-size:14px;font-weight:600;min-width:260px;max-width:400px;transform:translateX(120%);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);pointer-events:auto;border-left:4px solid var(--c-info)}
.ws-toast.show{transform:translateX(0);opacity:1}
.ws-toast-success{border-left-color:var(--c-ok);color:var(--c-ok)}
.ws-toast-error{border-left-color:var(--c-err);color:var(--c-err)}
.ws-toast-warn{border-left-color:var(--c-warn);color:#92400e}
.ws-toast-info{border-left-color:var(--c-info);color:var(--c-info)}

/* ═══ DOMAIN CHECK RESULTS ═══ */
.pv-dc-results{max-width:900px;margin:-40px auto 40px;padding:0 20px;position:relative;z-index:10;display:none}
.pv-dc-results.visible{display:block;animation:fadeUp .4s cubic-bezier(.4,0,.2,1)}
.pv-dc-wrap{background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:28px 24px;border:1px solid var(--c-bd)}
.pv-dc-wrap h3{font-size:18px;font-weight:800;color:var(--c-primary);margin:0 0 18px}
.pv-dc-wrap h3 em{font-style:normal;color:var(--c-accent)}
.pv-dc-loading{text-align:center;padding:40px 20px}
.pv-dc-loading p{color:var(--c-t2);margin:14px 0 0;font-size:14px}
.pv-dc-error{text-align:center;padding:30px;color:var(--c-err);font-size:14px;font-weight:600}

.pv-dc-list{display:flex;flex-direction:column;gap:10px}
.pv-dc-row{display:grid;grid-template-columns:1fr auto auto auto;gap:16px;align-items:center;padding:14px 16px;border:1.5px solid var(--c-bd);border-radius:10px;background:var(--c-bg);transition:all var(--tr)}
.pv-dc-row.ok{border-color:var(--c-ok);background:#ecfdf5}
.pv-dc-row.taken{opacity:.6}
.pv-dc-row.unknown{background:#fffbeb;border-color:#fde68a}
.pv-dc-row:hover.ok{box-shadow:var(--sh-sm);transform:translateX(2px)}

.pv-dc-row .dc-domain{font-weight:800;color:var(--c-primary);font-size:16px;word-break:break-all}
.pv-dc-row .dc-status{font-size:12.5px;font-weight:700;text-align:right;white-space:nowrap}
.pv-dc-row.ok .dc-status{color:var(--c-ok)}
.pv-dc-row.taken .dc-status{color:var(--c-err)}
.pv-dc-row.unknown .dc-status{color:#d97706}
.pv-dc-row .dc-price{font-weight:800;color:var(--c-primary);text-align:right;white-space:nowrap;font-size:15px}
.pv-dc-row .dc-price span{font-weight:500;color:var(--c-t3);font-size:12px;margin-left:2px}
.pv-dc-row .dc-cta{background:linear-gradient(135deg,var(--c-accent),var(--c-accent-d));color:#fff;border:none;padding:10px 18px;border-radius:8px;font-weight:700;font-size:13px;cursor:pointer;transition:all var(--tr);white-space:nowrap}
.pv-dc-row .dc-cta:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--sh-md)}
.pv-dc-row .dc-cta:disabled{background:var(--c-bd);color:var(--c-t3);cursor:not-allowed}
.pv-dc-row .dc-cta.added{background:var(--c-ok);color:#fff}

/* ═══ SPINNER ═══ */
.pv-spinner{width:42px;height:42px;margin:0 auto;border:3px solid var(--c-accent-10);border-top-color:var(--c-accent);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ═══ CART PAGE ═══ */
.ws-cart-wrap{max-width:1080px;margin:40px auto;padding:0 20px}
.ws-cart-wrap h1{font-size:28px;font-weight:900;color:var(--c-primary);margin:0 0 24px;letter-spacing:-.5px}
.ws-cart-grid{display:grid;grid-template-columns:1fr 340px;gap:24px}
.ws-cart-items{background:#fff;border-radius:var(--r-lg);border:1px solid var(--c-bd);overflow:hidden}
.ws-cart-empty{background:#fff;border-radius:var(--r-lg);border:1px dashed var(--c-bd);padding:60px 20px;text-align:center;color:var(--c-t2)}
.ws-cart-empty .ico{font-size:64px;margin-bottom:16px;opacity:.4}
.ws-cart-empty h2{font-size:20px;font-weight:800;color:var(--c-primary);margin:0 0 8px}
.ws-cart-empty p{margin:0 0 22px;font-size:14.5px}

.ws-ci{display:grid;grid-template-columns:48px 1fr auto;gap:16px;padding:18px 20px;border-bottom:1px solid var(--c-bd);align-items:center}
.ws-ci:last-child{border-bottom:none}
.ws-ci .type-ico{width:48px;height:48px;background:var(--c-accent-s);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}
.ws-ci .info h4{font-size:15.5px;font-weight:800;color:var(--c-primary);margin:0 0 4px}
.ws-ci .info .meta{font-size:12.5px;color:var(--c-t3);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ws-ci .info .meta select{border:1px solid var(--c-bd);border-radius:6px;padding:3px 6px;font-size:12px;font-family:inherit;background:#fff;color:var(--c-t2)}
.ws-ci .price{text-align:right;min-width:120px}
.ws-ci .price .amt{font-weight:800;color:var(--c-primary);font-size:15px}
.ws-ci .price .rem{background:none;border:none;color:var(--c-err);font-size:12.5px;cursor:pointer;margin-top:6px;font-weight:600;padding:0;font-family:inherit}
.ws-ci .price .rem:hover{text-decoration:underline}

.ws-cart-summary{background:#fff;border-radius:var(--r-lg);border:1px solid var(--c-bd);padding:24px;position:sticky;top:80px;height:fit-content}
.ws-cart-summary h3{font-size:16px;font-weight:800;color:var(--c-primary);margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--c-bd)}
.ws-cart-summary .line{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;color:var(--c-t2)}
.ws-cart-summary .line strong{color:var(--c-primary)}
.ws-cart-summary .total{display:flex;justify-content:space-between;padding:14px 0 20px;border-top:1.5px solid var(--c-bd);margin-top:10px;align-items:baseline}
.ws-cart-summary .total strong{font-size:22px;color:var(--c-accent);font-weight:900}
.ws-cart-summary .total span{font-weight:600;color:var(--c-primary)}
.ws-cart-summary .btn-checkout{width:100%;background:linear-gradient(135deg,var(--c-accent),var(--c-accent-d));color:#fff;border:none;padding:14px;border-radius:10px;font-size:15px;font-weight:800;cursor:pointer;transition:all var(--tr);text-decoration:none;display:block;text-align:center;box-shadow:var(--sh-md)}
.ws-cart-summary .btn-checkout:hover{transform:translateY(-1px);box-shadow:var(--sh-lg);color:#fff}
.ws-cart-summary .login-note{font-size:12.5px;color:var(--c-t3);text-align:center;margin:12px 0 0;line-height:1.5}

@media(max-width:860px){
  .ws-cart-grid{grid-template-columns:1fr}
  .ws-cart-summary{position:static}
  .pv-dc-row{grid-template-columns:1fr auto;gap:8px}
  .pv-dc-row .dc-status,.pv-dc-row .dc-price{text-align:left}
  .pv-dc-row .dc-cta{grid-column:1/-1}
}

/* ═══ CHECKOUT PAGE ═══ */
.ws-co-wrap{max-width:1080px;margin:40px auto;padding:0 20px}
.ws-co-grid{display:grid;grid-template-columns:1fr 380px;gap:24px;align-items:start}
.ws-co-form{background:#fff;border-radius:var(--r-lg);border:1px solid var(--c-bd);padding:28px}
.ws-co-form h2{font-size:18px;font-weight:800;color:var(--c-primary);margin:0 0 18px}
.ws-co-form .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.ws-co-form .fg{display:flex;flex-direction:column;gap:6px}
.ws-co-form .fg.full{grid-column:1/-1}
.ws-co-form label{font-size:12.5px;font-weight:700;color:var(--c-t2);letter-spacing:.3px;text-transform:uppercase}
.ws-co-form input,.ws-co-form textarea,.ws-co-form select{border:1.5px solid var(--c-bd);border-radius:8px;padding:10px 14px;font-size:14px;font-family:inherit;color:var(--c-t1);background:#fff;transition:border-color var(--tr)}
.ws-co-form input:focus,.ws-co-form textarea:focus,.ws-co-form select:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-10)}
.ws-co-form textarea{resize:vertical;min-height:80px}

.ws-co-method{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}
.ws-co-method label{display:flex;align-items:center;gap:10px;padding:14px 16px;border:2px solid var(--c-bd);border-radius:10px;cursor:pointer;transition:all var(--tr);font-weight:600;font-size:13px;color:var(--c-t2);background:#fff;text-transform:none;letter-spacing:0}
.ws-co-method label:hover{border-color:var(--c-accent-10)}
.ws-co-method input[type=radio]{accent-color:var(--c-accent)}
.ws-co-method input[type=radio]:checked + span,
.ws-co-method label:has(input:checked){border-color:var(--c-accent);background:var(--c-accent-s);color:var(--c-accent-d)}

@media(max-width:860px){
  .ws-co-grid{grid-template-columns:1fr}
  .ws-co-form .fgrid{grid-template-columns:1fr}
}

/* ═══ GLOBAL ANIMATIONS ═══ */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.ws-fade-up{animation:fadeUp .4s cubic-bezier(.4,0,.2,1) both}

/* Add-to-cart button default look */
.plan-cta.added{background:linear-gradient(135deg,var(--c-ok),#059669)!important;color:#fff!important;border-color:transparent!important}
.dc-cta.added{background:var(--c-ok)!important}

/* Smooth scroll */
html{scroll-behavior:smooth}

/* Login gate inline card */
.ws-login-gate{background:linear-gradient(135deg,var(--c-primary),#1e3a8a);border-radius:var(--r-lg);padding:36px 28px;text-align:center;color:#fff;max-width:520px;margin:20px auto}
.ws-login-gate .ico{font-size:48px;margin-bottom:12px;display:block}
.ws-login-gate h2{font-size:22px;font-weight:900;color:#fff;margin:0 0 10px}
.ws-login-gate p{margin:0 0 22px;color:rgba(255,255,255,.9);font-size:14.5px;line-height:1.6}
.ws-login-gate .actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.ws-login-gate .btn-login{background:linear-gradient(135deg,var(--c-accent),var(--c-accent-d));color:#fff;padding:11px 24px;border-radius:10px;font-weight:700;text-decoration:none;font-size:14px;display:inline-block}
.ws-login-gate .btn-register{background:rgba(255,255,255,.15);color:#fff;padding:10px 22px;border-radius:10px;font-weight:700;text-decoration:none;font-size:14px;border:1.5px solid rgba(255,255,255,.3);display:inline-block}
