/* plan summary card + onboarding (takedown-plan) - AAA: text >= 7:1, targets >= 44px, visible focus */
.tdp-wrap { margin: 0 0 1.5em; }
.tdp-card { background: #fff; border: 2px solid #6bc530; border-radius: 16px; padding: 20px 22px; box-shadow: 0 8px 24px rgba(37, 90, 8, .12); color: #1f2430; text-align: left; }
.tdp-eyebrow { margin: 0 0 4px; font-size: .78em; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #255a08; }
.tdp-title { margin: 0 0 4px !important; font-size: 1.3em !important; color: #1f2430 !important; line-height: 1.25; }
.tdp-price { margin: 0 0 10px !important; font-size: 2.2em; font-weight: 800; line-height: 1.1; color: #1f2430; }
.tdp-unit { font-size: .4em; font-weight: 600; color: #474d58; margin-left: 3px; }
.tdp-chip { display: inline-flex; align-items: center; min-height: 32px; margin: 0 0 10px !important; padding: 2px 12px; border-radius: 999px; background: #eef7e5; color: #255a08; font-weight: 700; font-size: .85em; }
.tdp-list { list-style: none; margin: 0; padding: 10px 0 0; border-top: 1px solid #e6e9ee; display: grid; gap: 8px; }
.tdp-list li { position: relative; padding-left: 28px; line-height: 1.45; color: #2b303b; font-size: .95em; }
.tdp-list li::before { content: ""; position: absolute; left: 0; top: .15em; width: 18px; height: 18px; border-radius: 50%; background: #e3f3d6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23255a08' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.tdp-change { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 12px; }
.tdp-change label { margin: 0; font-weight: 700; color: #1f2430; }
.tdp-change select { min-height: 48px; padding: 0 12px; border: 2px solid #474d58; border-radius: 12px; background: #fff; color: #1f2430; font-size: 16px; max-width: 100%; }
.tdp-compare { display: inline-flex; align-items: center; min-height: 44px; color: #255a08 !important; font-weight: 700; text-decoration: underline; }
.tdp-change select:focus-visible, .tdp-compare:focus-visible, .tdp-next a:focus-visible { outline: 3px solid #0d1f04; outline-offset: 3px; box-shadow: 0 0 0 6px #fff; }
.tdp-compact { padding: 16px; box-shadow: none; margin-bottom: 1em; }
.tdp-compact .tdp-price { font-size: 1.8em; }
/* onboarding */
.tdp-next { max-width: 760px; margin: 1.5em auto; padding: 0 16px; text-align: left; color: #1f2430; }
.tdp-next h2 { font-size: 1.5em; margin: 0 0 .4em; color: #1f2430; }
.tdp-steps { list-style: none; margin: 1em 0; padding: 0; counter-reset: s; display: grid; gap: 12px; }
.tdp-steps li { counter-increment: s; position: relative; padding: 14px 16px 14px 60px; border: 1px solid #d5dae1; border-radius: 12px; background: #fff; line-height: 1.5; }
.tdp-steps li::before { content: counter(s); position: absolute; left: 16px; top: 14px; width: 30px; height: 30px; border-radius: 50%; background: #6bc530; color: #0d1f04; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.tdp-steps strong { display: block; color: #1f2430; }
.tdp-steps span { color: #343a46; }
.tdp-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1em; }
.tdp-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 20px; border-radius: 12px; font-weight: 700; text-decoration: none !important; }
.tdp-actions .tdp-primary { background: #6bc530; color: #0d1f04 !important; border: 2px solid #6bc530; }
.tdp-actions .tdp-secondary { background: #fff; color: #255a08 !important; border: 2px solid #255a08; }
@media (max-width: 480px) { .tdp-actions a { width: 100%; } .tdp-card { padding: 16px; } }
@media (prefers-reduced-motion: reduce) { .tdp-card, .tdp-actions a { transition: none !important; } }

/* ===== CreateTakedown form: AAA restyle (v=20261010b). Markup ids/names unchanged. ===== */
.container > .tdf-h1 { font-size: 2em; font-weight: 800; color: #1f2430; margin: 1em 0 .2em; line-height: 1.2; }
.tdf-video { margin: 0 0 1.2em; }
.tdf-video a.youtube-how-to { display: inline-flex !important; align-items: center; gap: 8px; min-height: 44px; padding: 0 !important; color: #255a08 !important; font-weight: 700; text-decoration: underline; background: none !important; width: auto !important; height: auto !important; }
.container > #signup_page.newSignup { border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 0 !important; float: none; }
#signup_page .col-md-12[style*="font-size:0.85em"] { font-size: 1em !important; line-height: 1.5 !important; padding: 0 !important; }
#signup_page .accountInfo { margin: 0 0 8px; background: #fff; border: 1px solid #d5dae1; border-radius: 16px; padding: 20px 12px 8px; }
#signup_page .accountInfo .accountInfo { border: 0; padding: 0; }
#signup_page h3 { font-size: 1.2em !important; font-weight: 800 !important; color: #1f2430 !important; margin: 0 0 14px !important; padding: 0 15px; display: flex; align-items: center; gap: 10px; }
#signup_page label.takedownLabel h3 { padding: 0; display: block; }
#signup_page .form-group { margin-bottom: 18px; }
#signup_page .form-group > label, #signup_page .field-wrap > label { display: block; font-weight: 700 !important; color: #1f2430 !important; font-size: 1em !important; line-height: 1.4 !important; margin: 0; }
#signup_page .form-control, #signup_page .field-wrap input.form-control, #signup_page input.newSourceUrl, #signup_page input.newInfringingUrl {
    display: block; width: 100%; box-sizing: border-box; min-height: 48px; height: auto; margin-top: 6px; padding: 10px 14px;
    border: 2px solid #6b7280 !important; border-radius: 8px !important; background: #fff !important; color: #1f2430 !important; font-size: 16px !important; font-weight: 400; box-shadow: none !important;
}
#signup_page span#descriptionOfInfringement.form-control { min-height: 9em !important; line-height: 1.5; white-space: pre-wrap; }
#signup_page .form-control::placeholder { color: #5d636e; opacity: 1; }
#signup_page .form-control:focus, #signup_page .form-control:focus-visible { outline: 3px solid #0d1f04 !important; outline-offset: 2px; border-color: #255a08 !important; }
#signup_page .tdf-help { display: block; margin-top: 6px; color: #474d58; font-size: .9em; line-height: 1.45; font-weight: 400; }
#signup_page .tdf-add, #signup_page #addAnotherField { display: inline-flex !important; align-items: center; gap: 8px; min-height: 44px; margin-top: 10px; padding: 0 16px !important; border-radius: 12px !important; background: #6bc530 !important; border: 2px solid #6bc530 !important; color: #0d1f04 !important; font-weight: 700 !important; font-size: .95em !important; text-transform: none !important; box-shadow: none !important; }
#signup_page .tdf-add:hover { background: #7fd544 !important; border-color: #7fd544 !important; }
#signup_page input.registerButton, #signup_page #register {
    display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px !important; margin-top: 12px;
    border-radius: 12px !important; background: #6bc530 !important; border: 2px solid #6bc530 !important; color: #0d1f04 !important; font-weight: 800 !important; font-size: 1.05em !important; text-transform: none !important; box-shadow: none !important; white-space: normal;
}
#signup_page input.registerButton:hover { background: #7fd544 !important; border-color: #7fd544 !important; }
#signup_page .tdf-add:focus-visible, #signup_page input.registerButton:focus-visible, #signup_page label.takedownLabel:focus-within { outline: 3px solid #0d1f04 !important; outline-offset: 3px !important; box-shadow: 0 0 0 6px #fff !important; }
#signup_page .field-wrap p { color: #343a46 !important; font-size: .9em !important; line-height: 1.6 !important; }
#signup_page a { color: #255a08 !important; }
#signup_page label.takedownLabel { border-radius: 12px !important; border: 2px solid #d5dae1 !important; color: #1f2430 !important; white-space: normal !important; text-align: left; }
#signup_page label.takedownLabel.active { border-color: #6bc530 !important; background: #f6fbf1 !important; }
#signup_page label.takedownLabel p, #signup_page label.takedownLabel .price { color: #343a46 !important; }
#signup_page label.takedownLabel .price { color: #255a08 !important; font-weight: 800 !important; }
#signup_page .alert-warning { color: #3b2a00 !important; background: #fffaf0 !important; border-color: #5c3e00 !important; }
@media (max-width: 767px) {
    .container > .tdf-h1 { font-size: 1.6em; }
    #signup_page input.registerButton, #signup_page #register { width: 100% !important; display: flex; }
    #signup_page .accountInfo { padding: 16px 0 4px; border-radius: 12px; }
    #signup_page .accountInfo > [class*="col-"], #signup_page .form-group { padding-left: 12px; padding-right: 12px; }
    #signup_page h3 { padding: 0 12px; }
}
html, body { overflow-x: clip; }
/* shared master chrome on these pages: AAA colours / targets (same treatment as Takedowns.aspx) */
#sign_btn, #signup_mobile { background: #6bc530 !important; color: #0d1f04 !important; border-color: #6bc530 !important; }
#footer-bl { color: #0d1f04 !important; }
html body footer .footer-container:last-child .footer-col-2 span.pp-ts a, html body .about-us > a, html body a[href="/About-Us?r=msft"], html body a[href$="Privacy.aspx"], html body a[href="/TermsOfService?r=msft"] { color: #b4ec8f !important; text-decoration: underline !important; }
.hamburger { min-width: 48px !important; min-height: 48px !important; }
#sidebar-wrapper .btn-primary, .sidebar-nav .btn-primary, #mobile-menu .btn-primary { background: #0b4a7a !important; border-color: #0b4a7a !important; color: #fff !important; min-height: 44px; }
/* submit button stays readable while busy (the page script dims it to .6); error box AAA + actions */
#signup_page #register, #signup_page input.registerButton { opacity: 1 !important; }
#signup_page #register[style*="pointer-events: none"] { cursor: progress; background: #8fd65e !important; border-color: #8fd65e !important; color: #0d1f04 !important; }
.signupMessageError { color: #3b2a00 !important; font-size: 1em !important; line-height: 1.5; }
.signupMessageError .tdp-err-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.signupMessageError .tdp-retry { min-height: 44px; padding: 0 18px; border-radius: 12px; border: 2px solid #6bc530; background: #6bc530; color: #0d1f04; font-weight: 700; cursor: pointer; }
.signupMessageError .tdp-help { display: inline-flex; align-items: center; min-height: 44px; color: #255a08 !important; font-weight: 700; text-decoration: underline; }
.signupMessageError .tdp-retry:focus-visible, .signupMessageError .tdp-help:focus-visible { outline: 3px solid #0d1f04; outline-offset: 3px; }
.container .btn-lg.btn-primary { background: #0b4a7a !important; border-color: #0b4a7a !important; color: #fff !important; min-height: 48px; }

/* plan card reset: legacy master/page CSS (fixed line-heights, h2 margins, nowrap) must not leak in */
.tdp-card, .tdp-card * { box-sizing: border-box; }
.tdp-card { max-width: 100%; min-width: 0; overflow-wrap: anywhere; line-height: 1.4 !important; }
.tdp-card .tdp-eyebrow { display: block; margin: 0 0 6px !important; line-height: 1.3 !important; font-size: .78rem !important; }
.tdp-card .tdp-title { display: block; margin: 0 0 6px !important; line-height: 1.3 !important; padding: 0 !important; white-space: normal !important; }
.tdp-card .tdp-price { line-height: 1.15 !important; margin: 0 0 10px !important; white-space: normal; }
.tdp-card .tdp-chip { display: inline-block !important; max-width: 100%; white-space: normal !important; line-height: 1.35 !important; padding: 6px 12px !important; border-radius: 14px; }
.tdp-card .tdp-list li { line-height: 1.45 !important; margin: 0 !important; }
.tdp-compact .tdp-title { font-size: 1.15rem !important; }
.tdp-compact .tdp-price { font-size: 1.6rem !important; }
/* order summary row (PayByCard): icon | name + desc | price, nothing overlaps or clips */
.checkout-summary .summary-product { display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.checkout-summary .summary-product-info { min-width: 0; }
.checkout-summary .summary-product-name, .checkout-summary .summary-product-desc, .checkout-summary .summary-product-qty { display: block; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; height: auto !important; max-height: none !important; line-height: 1.4 !important; overflow-wrap: anywhere; }
.checkout-summary .summary-product-desc { margin-top: 4px; }
.checkout-summary .summary-product-price { flex-shrink: 0; white-space: nowrap; font-weight: 700; }
.checkout-summary { min-width: 0; max-width: 100%; }
@media (max-width: 760px) { .checkout-wrapper .checkout-summary { flex: 1 1 100% !important; border-right: 0 !important; } }
/* thank-you payment banner */
.tdp-receipt { max-width: 640px; margin: 1.5em auto 24px; padding: 28px 32px; border-radius: 16px; text-align: left; color: #1f2430; background: #f2faea; border: 2px solid #255a08; box-sizing: border-box; line-height: 1.5; }
.tdp-receipt.is-pending { background: #fffaf0; border-color: #5c3e00; }
.tdp-receipt-head { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; }
.tdp-receipt-icon { flex: 0 0 44px; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: #255a08; color: #fff; font-size: 1.5em; font-weight: 800; }
.tdp-receipt-wait { background: #5c3e00; font-size: 1.2em; }
.tdp-receipt h1 { font-size: 1.6em !important; margin: 0 !important; color: #1f2430 !important; line-height: 1.25 !important; border-radius: 6px; }
.tdp-receipt h1:focus { outline: none; }
.tdp-receipt h1:focus-visible { outline: 2px solid rgba(37,90,8,.45); outline-offset: 6px; }
.tdp-receipt p { color: #2b303b; margin: 0 0 16px; }
.tdp-receipt-sub { font-size: 1.05em !important; margin: 0 0 8px !important; color: #1f2430 !important; }
.tdp-receipt-list { margin: 0 0 20px; display: grid; grid-template-columns: max-content 1fr; column-gap: 16px; row-gap: 12px; }
.tdp-receipt-list > div { display: contents; }
.tdp-receipt-list dt, .tdp-receipt-list dd { margin: 0; }
.tdp-receipt-list .tdp-k { font-weight: 700; color: #343a46; min-width: 120px; }
.tdp-receipt-list .tdp-v { color: #1f2430; overflow-wrap: anywhere; min-width: 0; }
.tdp-receipt-list a { color: #0b3d91; text-decoration: underline; }
.tdm-total > * { border-top: 1px solid #555; padding-top: 12px; }
.tdp-print { display: block; margin-left: auto; min-height: 44px; padding: 0 20px; border-radius: 12px; border: 2px solid #255a08; background: #fff; color: #255a08; font-weight: 700; cursor: pointer; }
.tdp-print:focus-visible { outline: 3px solid #0d1f04; outline-offset: 3px; }
.tdp-after { max-width: 640px; margin: 0 auto !important; text-align: left; box-sizing: border-box; padding: 0 4px; }
.tdp-after-p { margin: 8px 0 24px; font-weight: 400; }
@media (max-width: 480px) {
    .tdp-receipt { padding: 20px 16px; }
    .tdp-receipt h1 { font-size: 1.3em !important; }
    .tdp-receipt-list { grid-template-columns: 1fr; row-gap: 2px; }
    .tdp-receipt-list .tdp-v { margin-bottom: 10px; }
    .tdm-total > dd { border-top: 0; padding-top: 0; }
    .tdp-print { width: 100%; }
}
.tdp-pr { display: none; }
@media print {
    @page { size: auto; margin: 14mm 14mm 16mm; }
    html, body { background: #fff !important; color: #000 !important; }
    header, footer, nav, #desktop-header, #mobile-menu, #pre-header, .tdp-print, .tdp-actions, .btn, iframe, #intercom-container { display: none !important; }
    /* receipt pages: print ONLY the receipt (drops site header/nav/cart/footer/chat/floating bars/after-text) */
    body:has(.tdp-pr) *:not(:has(.tdp-pr)):not(.tdp-pr):not(.tdp-pr *) { display: none !important; }
    body:has(.tdp-pr) *:has(.tdp-pr) { display: block !important; position: static !important; float: none !important; width: auto !important; max-width: none !important; min-height: 0 !important; height: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: #fff !important; box-shadow: none !important; transform: none !important; overflow: visible !important; text-align: left !important; }
    .tdp-pr { display: block !important; width: 100%; color: #000; font: 11pt/1.4 Arial, Helvetica, sans-serif; }
    .tdp-pr a:after, .tdp-pr a[href]:after, .tdp-receipt a[href]:after { content: none !important; }
    .tdp-pr-brand { font-size: 18pt; font-weight: 700; margin: 0 0 2pt; }
    .tdp-pr-title { font-size: 14pt; font-weight: 700; padding-bottom: 8pt; margin-bottom: 10pt; border-bottom: 1.5pt solid #000; }
    .tdp-pr table { width: 100%; border-collapse: collapse; table-layout: auto; }
    .tdp-pr th, .tdp-pr td { color: #000 !important; background: #fff !important; text-align: left; vertical-align: top; padding: 4pt 8pt 4pt 0; }
    .tdp-pr-meta { margin-bottom: 14pt; }
    .tdp-pr-meta th { width: 1%; white-space: nowrap; padding-right: 16pt; font-weight: 700; }
    .tdp-pr-meta td { word-break: break-all; }
    .tdp-pr-items thead th { border-bottom: 1pt solid #000; font-weight: 700; }
    .tdp-pr-items tbody td { border-bottom: .5pt solid #999; padding-top: 6pt; padding-bottom: 6pt; }
    .tdp-pr-items td:first-child { white-space: nowrap; }
    .tdp-pr-items .tdp-pr-amt { text-align: right; white-space: nowrap; padding-right: 0; }
    .tdp-pr-items tfoot td { border-top: 1.5pt solid #000; font-weight: 700; padding-top: 8pt; }
    .tdp-pr tr, .tdp-pr-meta { page-break-inside: avoid; break-inside: avoid; }
    .tdp-pr thead { display: table-header-group; }
    /* fallback (no :has support): older receipt card stays readable */
    .tdp-receipt { border: 1px solid #000; background: #fff !important; color: #000; margin: 0; max-width: none; }
    .tdp-receipt-icon { border: 1px solid #000; background: #fff !important; color: #000 !important; }
}
/* cart badge: AAA colours + paid-case animation (reduced motion = instant) */
.tdp-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.checkout-link .dmca-cart-icon:not([data-unpaid="0"]):after { background: #a3271b !important; color: #fff !important; transition: opacity .14s ease, transform .14s ease, background-color .2s ease; }
.checkout-link .dmca-cart-icon.tdp-out:after { opacity: 0; transform: translateY(-6px) scale(.8); }
.checkout-link .dmca-cart-icon.tdp-check:after { background: #255a08 !important; animation: tdp-pop .23s ease-out; }
.checkout-link .dmca-cart-icon.tdp-in:after { animation: tdp-pulse .22s ease-out; }
@keyframes tdp-pop { 0% { transform: scale(.4); opacity: 0; } 70% { transform: scale(1.25); opacity: 1; } 100% { transform: scale(1); } }
@keyframes tdp-pulse { 0% { transform: scale(1.2); box-shadow: 0 0 0 0 rgba(37, 90, 8, .55); } 100% { transform: scale(1); box-shadow: 0 0 0 8px rgba(37, 90, 8, 0); } }
@media (prefers-reduced-motion: reduce) { .checkout-link .dmca-cart-icon:after { transition: none !important; animation: none !important; } }
/* thank-you at 320: long portal button wrapped instead of pushing the page sideways */
body a.btn.btn-lg { white-space: normal; max-width: 100%; height: auto; overflow-wrap: anywhere; }
@media (max-width: 400px) { html, body { overflow-x: clip; } }
