/* Shared account layout and purchase pages. */
.account-page { overflow-wrap:anywhere; }
.account-shell { padding-block:104px 48px; min-height:70vh; }
.account-page-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; margin-bottom:24px; }
.account-page-heading h1 { margin:0; }
.account-page-heading p { margin:6px 0 0; }
.account-heading-actions, .account-card-actions, .account-form-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.account-shell .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; white-space:normal; }
.account-shell .modal .btn-close { flex:0 0 44px; width:44px; height:44px; padding:0; margin:-8px -8px -8px auto; }
.account-shell .modal-body > .account-facts { margin-bottom:20px; }
.account-layout { display:grid; grid-template-columns:minmax(0,1fr) 248px; grid-template-areas:"content navigation"; gap:24px; align-items:start; }
.account-layout--full { display:block; }
.account-layout > .account-content { grid-area:content; min-width:0; }
.account-sidebar { grid-area:navigation; min-width:0; position:sticky; top:104px; }
.account-menu { border:1px solid #dee2e6; border-radius:8px; background:#fff; overflow:hidden; }
.account-menu > summary { display:none; }
.account-menu .account-navigation { border-radius:8px; }
.account-menu .account-navigation a { display:flex; align-items:center; gap:10px; min-height:48px; border-inline:0; border-top:0; padding:12px 16px; }
.account-menu .account-navigation a:last-child { border-bottom:0; }
.account-menu .account-navigation a > i { flex:0 0 18px; text-align:center; }
.account-stack { display:grid; gap:20px; }
.account-card { min-width:0; border-radius:8px; }
.account-card > .card-body { min-width:0; padding:24px; }
.account-card h2 { margin-bottom:16px; }
.account-facts { display:grid; gap:16px; margin:20px 0 0; }
.account-facts > div { display:grid; grid-template-columns:minmax(100px,1fr) minmax(0,2fr); gap:8px 20px; }
.account-facts dt { color:#6c757d; font-weight:400; }
.account-facts dd { min-width:0; margin:0; }
.account-facts--stacked > div { grid-template-columns:minmax(0,1fr); gap:4px; }
.account-card-actions { margin-top:20px; padding-top:16px; border-top:1px solid #eee; }
.account-address { display:grid; gap:6px; margin:0; font-style:normal; }
.account-address-grid, .account-device-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.account-address-grid > .account-empty, .account-device-grid > .account-empty { grid-column:1/-1; }
.account-delivery-card .card-body { display:flex; flex-direction:column; }
.account-delivery-card .account-address { flex:1; }
.account-address-comment { margin:12px 0 0; }
.account-empty { text-align:center; }
.account-empty > .card-body { padding-block:40px; }
.account-empty-icon { display:block; margin-bottom:20px; color:#9589ad; font-size:40px; }
.account-device-heading { display:flex; align-items:center; gap:12px; }
.account-device-heading > i { color:#66598b; font-size:28px; }
.account-device-heading h2 { margin:0; }
.account-serial, .account-activation-key { font-family:"Courier New",monospace; overflow-wrap:anywhere; }
.account-activation-key { padding:12px; background:#f7f5fb; font-size:16px; resize:vertical; }
.account-requests { list-style:none; margin:0; padding:0; }
.account-requests li { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-block:16px; border-bottom:1px solid #eee; }
.account-requests li:last-child { border-bottom:0; padding-bottom:0; }
.account-requests li > div { display:grid; min-width:0; gap:4px; }
.account-requests .badge { padding:8px 10px; white-space:normal; }
.account-form fieldset { min-width:0; margin:0; padding:0; border:0; }
.account-form legend { float:none; width:auto; margin-bottom:16px; }
.account-form fieldset + fieldset { margin-top:28px; }
.account-form-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.account-form-fields > div { min-width:0; }
.account-password-form { max-width:480px; }
.account-field-wide { grid-column:1/-1; }
.account-form [data-customer-types][hidden] { display:none; }
.account-form .form-control, .account-form .form-select { min-height:44px; }
.account-form-actions { margin-top:24px; padding-top:20px; border-top:1px solid #eee; }
.account-copy-profile { margin-bottom:24px; }
.account-shell.support-page .support-form { max-width:none; }
.account-shell.support-page .card { border-radius:8px; }
.account-shell.support-page .card-body { padding:24px; }
.account-shell.support-page .form-control, .account-shell.support-page .form-select { min-height:44px; }
.account-shell.support-page .support-toolbar .btn { min-width:36px; min-height:36px; }
.account-page .account-content, .account-page .checkout-column { min-width:0; }
.account-page .account-navigation a { font-size:1rem; color:#495057; text-decoration:none; }
.account-page .account-navigation a.active { color:#fff; }
.account-page .private-data-table { max-width:100%; }
.account-page .private-data-table > .table { margin-bottom:0; }
.account-page .activation-key { color:#eee; text-align:center; border:0; background:rgb(51,47,74); font:800 1.2em/1.6 "Courier New",monospace; letter-spacing:.3em; }
.account-page .delivery-address { width:100%; margin-inline:0; }
.account-page .cart-item-image img { height:96px !important; }
.shopping-cart .cart-item-layout { margin:0; }
.shopping-cart .cart-item-details,
.shopping-cart .cart-item-quantity,
.shopping-cart .cart-item-cost { padding:15px 10px; }
.shopping-cart .cart-item-actions { padding:15px 25px; }
.shopping-cart .cart-summary { padding-block:24px; row-gap:16px; }
.shopping-cart .cart-checkout-actions { display:flex; flex-wrap:wrap; align-items:start; gap:8px; }
.checkout-page { padding-block:104px 48px; }
.checkout-page h1 { margin-bottom:24px; }
.checkout-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); align-items:start; gap:24px; }
.checkout-details, .checkout-summary { min-width:0; }
.checkout-details { display:grid; gap:20px; }
.checkout-section { margin:0; border-radius:8px; }
.checkout-section .card-body { min-width:0; padding:24px; }
.checkout-fieldset { min-width:0; margin:0; padding:0; border:0; }
.checkout-section legend { float:none; width:auto; margin-bottom:12px; }
.checkout-addresses { display:grid; gap:12px; }
.checkout-address { border:1px solid #dee2e6; border-radius:6px; }
.checkout-address:has(input:checked) { border-color:#66598b; box-shadow:0 0 0 1px #66598b; background:#f7f5fb; }
.checkout-address:focus-within, .checkout-payment:focus-within { outline:2px solid #66598b; outline-offset:2px; }
.checkout-address-choice { display:flex; align-items:start; gap:12px; margin:0; padding:16px 16px 0; cursor:pointer; }
.checkout-address-content { min-width:0; line-height:1.5; }
.checkout-address .form-check-input, .checkout-payment .form-check-input { flex:0 0 18px; width:18px; height:18px; margin:3px 0 0; }
.checkout-address-footer { display:flex; align-items:center; justify-content:end; flex-wrap:wrap; gap:8px; padding:0 16px 4px 46px; }
.checkout-edit-address { display:inline-flex; align-items:center; gap:6px; min-height:44px; }
.checkout-address-errors { margin:0 16px 16px 30px; padding-left:16px; }
.checkout-address--incomplete { border-color:#e4bebe; }
.checkout-address--incomplete .checkout-address-choice { cursor:default; }
.checkout-empty-address { margin-bottom:0; }
.checkout-add-address { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; margin-top:16px; white-space:normal; }
.checkout-payments { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.checkout-payment { display:flex; align-items:center; gap:10px; min-width:0; min-height:72px; margin:0; padding:14px; border:1px solid #dee2e6; border-radius:6px; cursor:pointer; }
.checkout-payment:has(input:checked) { border-color:#66598b; box-shadow:0 0 0 1px #66598b; background:#f7f5fb; }
.checkout-payment .form-check-input { margin-top:0; }
.checkout-payment-icon { flex:0 0 24px; width:24px; color:#625481; font-size:24px; text-align:center; }
.checkout-payment span { min-width:0; }
.checkout-summary { position:sticky; top:104px; }
.checkout-products { list-style:none; margin:20px 0; padding:0; }
.checkout-products li { display:flex; justify-content:space-between; gap:16px; padding-block:12px; border-bottom:1px solid #eee; }
.checkout-products li > span { min-width:0; }
.checkout-line-total { flex-shrink:0; white-space:nowrap; }
.checkout-total { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding-bottom:20px; }
.checkout-total strong { font-size:1.5rem; white-space:nowrap; }
.site-modern .checkout-confirm { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:52px; font-size:18px; font-weight:600; white-space:normal; }
.checkout-confirm[aria-busy="true"] { opacity:.65; }
.checkout-back { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; margin-top:8px; }
.checkout-address-reminder { margin:12px 0 0; }
.checkout-address-form [data-business-fields][hidden] { display:none; }
.checkout-address-modal .modal-footer .btn { min-height:44px; }
.order-view { padding-block:104px 48px; }
.order-view-status { display:inline-flex; align-items:center; gap:8px; padding:10px 12px; font-size:.875rem; white-space:normal; }
.order-view-notice { display:flex; align-items:start; gap:16px; margin-bottom:24px; padding:20px 24px; border:1px solid #dad5e6; border-radius:8px; background:#f4f2f8; }
.order-view-notice--muted { border-color:#dee2e6; background:#f1f2f3; }
.order-view-notice-icon { flex:0 0 28px; margin-top:2px; color:#66598b; font-size:24px; }
.order-view-notice > div { min-width:0; }
.order-view-notice h2 { margin:0 0 8px; }
.order-view-notice p { margin:0; }
.order-view-notice .btn, .order-view-notice-link { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; margin-top:12px; white-space:normal; }
.order-view-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); grid-template-areas:"products details" "documents details"; align-items:start; gap:24px; }
.order-view-layout > * { min-width:0; }
.order-view .card { border-radius:8px; }
.order-view .card-body { padding:24px; }
.order-view-products { grid-area:products; }
.order-view-items { list-style:none; margin:8px 0 0; padding:0; }
.order-view-items li { display:flex; align-items:start; justify-content:space-between; gap:16px; padding-block:20px; border-bottom:1px solid #eee; }
.order-view-item-description { display:grid; min-width:0; gap:4px; }
.order-view-item-price { flex-shrink:0; white-space:nowrap; }
.order-view-total { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding-top:20px; }
.order-view-total strong { font-size:1.5rem; white-space:nowrap; }
.order-view-details { grid-area:details; display:grid; gap:20px; position:sticky; top:104px; }
.order-view-payment { display:flex; align-items:center; gap:12px; margin:16px 0 0; }
.order-view-payment i { width:24px; font-size:24px; color:#66598b; text-align:center; }
.order-view-address { display:grid; gap:6px; margin:16px 0 0; font-style:normal; }
.order-view-back { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; }
.order-view-documents { grid-area:documents; }
.order-view .order-documents { margin:0 !important; }
.order-view .order-documents .card-header { padding:16px 24px; font-size:1.125rem; font-weight:600; background:#fff; border-radius:8px 8px 0 0; }
.order-view .order-documents .list-group-item { gap:8px 16px; padding:12px; }
.order-view .order-documents .list-group-item a { min-width:0; }
.order-view .order-document-upload label { font-weight:600; margin-bottom:8px; }
.order-view .order-document-upload p { color:#6c757d; font-size:.875rem; }
.order-view .order-document-upload .form-control, .order-view .order-documents .btn { min-height:44px; }
.order-view .order-document-result:not(:empty) { margin-bottom:16px; padding:12px; color:#664d03; background:#fff3cd; border-radius:4px; }
.orders-list { padding-block:104px 48px; }
.orders-list-filter { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin-bottom:16px; padding:20px; border:1px solid #dee2e6; border-radius:8px; background:#fff; }
.orders-list-filter > div { flex:1; min-width:180px; }
.orders-list-filter .form-label { margin-bottom:6px; }
.orders-list-filter .form-select, .orders-list-filter .btn { min-height:44px; }
.orders-filter-reset { display:inline-flex; align-items:center; min-height:44px; }
.orders-list-count { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:12px; color:#6c757d; font-size:.875rem; }
.orders-cards { display:grid; gap:16px; margin:0; padding:0; list-style:none; }
.orders-card { border-radius:8px; }
.orders-card .card-body { padding:20px; }
.orders-card-heading { display:flex; align-items:start; justify-content:space-between; gap:12px; }
.orders-card-heading > div { min-width:0; }
.orders-card-heading h2 { margin:0 0 6px; }
.orders-card-heading h2 a { color:#332f4a; text-decoration:none; }
.orders-card-heading h2 a:hover { text-decoration:underline; }
.orders-card-heading .order-view-status { flex-shrink:0; }
.orders-card-products { display:grid; gap:8px; margin-block:20px; }
.orders-card-products p { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin:0; }
.orders-card-products p > span:first-child { min-width:0; }
.orders-card-quantity { flex-shrink:0; white-space:nowrap; }
.orders-card-footer { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:16px; border-top:1px solid #eee; }
.orders-card-total { display:grid; gap:4px; }
.orders-card-total strong { font-size:1.25rem; white-space:nowrap; }
.orders-card-open { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; }
.site-modern .orders-card-open { --bs-btn-color:#66598b; --bs-btn-border-color:#66598b; --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#66598b; --bs-btn-hover-border-color:#66598b; --bs-btn-active-color:#fff; --bs-btn-active-bg:#584b7a; --bs-btn-active-border-color:#584b7a; --bs-btn-focus-shadow-rgb:102,89,139; }
.orders-pagination { margin-top:24px; }
.orders-pagination .pagination { flex-wrap:wrap; gap:4px; margin-bottom:0; --bs-pagination-color:#66598b; --bs-pagination-hover-color:#584b7a; --bs-pagination-active-bg:#66598b; --bs-pagination-active-border-color:#66598b; }
.orders-pagination .page-link { display:flex; align-items:center; justify-content:center; min-width:40px; min-height:44px; border-radius:4px; }
.orders-empty { border-radius:8px; text-align:center; }
.orders-empty .card-body { padding:40px 24px; }
.orders-empty-icon { display:block; margin-bottom:20px; color:#9589ad; font-size:40px; }
.orders-empty .btn { min-height:44px; margin-top:8px; white-space:normal; }
.site-modern .shopping-cart .cart-catalog { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:1fr; gap:24px; margin:0; }
.site-modern .shopping-cart .cart-catalog > div { min-width:0; width:auto; margin:0; padding:0; }
.shopping-cart .cart-catalog .card { height:100%; }
.shopping-cart .cart-catalog .card-body { display:flex; flex-direction:column; gap:12px; }
.shopping-cart .cart-catalog .card-title { margin:0; }
.shopping-cart .cart-catalog .card-text { flex:1; min-height:4.285714em; margin:0; }
.site-modern .shopping-cart .cart-catalog__price,
.site-modern .shopping-cart .cart-item-price { margin:0; }
.site-modern .shopping-cart .cart-catalog .btn { display:flex; align-items:center; justify-content:center; gap:6px; min-height:40px; width:100%; white-space:normal; }
@media (max-width:1199.98px) {
  .site-modern .shopping-cart .cart-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
}
@media (max-width:575.98px) {
  .site-modern .shopping-cart .cart-catalog { grid-template-columns:minmax(0,1fr); gap:16px; }
  .site-modern .shopping-cart .cart-catalog .btn { min-height:44px; }
}
@media (max-width:991.98px) {
  .account-layout { grid-template-columns:minmax(0,1fr); grid-template-areas:"navigation" "content"; gap:20px; }
  .account-sidebar { position:static; }
  .account-menu > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:12px 16px; cursor:pointer; list-style:none; }
  .account-menu > summary::-webkit-details-marker { display:none; }
  .account-menu > summary > span { display:flex; align-items:center; gap:10px; }
  .account-menu[open] > summary { border-bottom:1px solid #dee2e6; }
  .account-menu[open] > summary > .fa-chevron-down { transform:rotate(180deg); }
  .account-menu[open] .account-navigation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-radius:0; }
  .account-menu .account-navigation a { border:0; border-radius:0; margin:0; white-space:normal; }
  .account-shell .order-view-layout { grid-template-columns:minmax(0,1fr); grid-template-areas:"products" "details" "documents"; }
  .order-view-layout { grid-template-columns:minmax(0,1fr); grid-template-areas:"products" "details" "documents"; gap:20px; }
  .order-view-details { position:static; }
  .checkout-layout { grid-template-columns:minmax(0,1fr); gap:20px; }
  .checkout-summary { position:static; }
  .account-page .order-product-row { padding-bottom:1rem; }
  .account-page .cart-catalog { row-gap:1rem; }
  .account-page .cart-quantity { margin-bottom:0 !important; }
  .shopping-cart .cart-item-layout { display:grid; grid-template-columns:80px minmax(0,1fr); grid-template-areas:"image details" "cost cost" "quantity actions"; gap:12px; padding:16px; }
  .shopping-cart .cart-item-layout > div { min-width:0; width:auto; padding:0; }
  .shopping-cart .cart-item-image { grid-area:image; align-self:start; }
  .site-modern .shopping-cart .cart-item-image img { width:80px; height:80px !important; }
  .shopping-cart .cart-item-details { grid-area:details; }
  .shopping-cart .cart-item-cost { grid-area:cost; }
  .shopping-cart .cart-item-quantity { grid-area:quantity; }
  .shopping-cart .cart-item-actions { grid-area:actions; justify-self:end; align-self:center; }
  .site-modern .shopping-cart .cart-quantity { width:144px; max-width:none; margin-inline:0; }
  .site-modern .shopping-cart .cart-quantity .btn { flex-basis:44px; width:44px; height:44px; min-height:44px; }
  .site-modern .shopping-cart .cart-quantity .product_quantity { height:44px; min-height:44px; font-size:16px; }
  .shopping-cart .cart-item-actions .btn { min-height:44px; padding-inline:12px; }
  .shopping-cart .cart-checkout-actions { flex-direction:column; align-items:stretch; }
  .shopping-cart .cart-checkout-actions .btn { display:flex; align-items:center; justify-content:center; min-height:44px; white-space:normal; }
}
@media (max-width:575.98px) {
  .account-card > .card-body, .account-shell.support-page .card-body { padding:16px; }
  .account-address-grid, .account-device-grid, .account-form-fields { grid-template-columns:minmax(0,1fr); }
  .account-facts > div { grid-template-columns:minmax(0,1fr); gap:4px; }
  .account-form .form-control, .account-form .form-select, .account-shell.support-page .form-control, .account-shell.support-page .form-select { font-size:16px; }
  .account-form-actions > .btn:first-child { flex:1; }
  .account-heading-actions { width:100%; }
  .account-heading-actions > .btn { width:100%; }
  .orders-card .card-body, .orders-list-filter { padding:16px; }
  .orders-card-heading { flex-direction:column; }
  .orders-list-filter > div { min-width:0; }
  .orders-list-filter .form-select { font-size:16px; }
  .orders-card-total strong { font-size:1.125rem; }
  .order-view .card-body { padding:16px; }
  .order-view-notice { gap:12px; padding:16px; }
  .order-view .order-documents .card-header { padding:16px; }
  .order-view-items li { flex-wrap:wrap; gap:8px; padding-block:16px; }
  .order-view .order-document-upload .btn { width:100%; }
  .order-view .order-document-upload .form-control { font-size:16px; }
  .checkout-page h1 { margin-bottom:20px; }
  .checkout-section .card-body { padding:16px; }
  .checkout-payments { grid-template-columns:minmax(0,1fr); gap:8px; }
  .checkout-payment { min-height:56px; }
  .checkout-add-address { width:100%; }
  .checkout-products li { flex-wrap:wrap; gap:4px 12px; }
  .checkout-address-form .form-control, .checkout-address-form .form-select { min-height:44px; font-size:16px; }
  .checkout-address-modal .modal-footer { display:grid; grid-template-columns:auto minmax(0,1fr); }
  .account-page .activation-key { font-size:1rem; letter-spacing:.12em; }
  .account-page .modal-body, .account-page .modal-footer { overflow-wrap:anywhere; }
}

.account-reviews .card { border-radius:8px; min-width:0; overflow-wrap:anywhere; }
.account-reviews .card-body { padding:24px; }
.account-reviews .review-text { white-space:pre-wrap; overflow-wrap:anywhere; }
.account-reviews .btn, .account-reviews .form-control { min-height:44px; }
.account-reviews .review-edit-content { max-width:none; margin:0; }
@media(max-width:575.98px){ .account-reviews .card-body { padding:16px; } .account-reviews .form-control { font-size:16px; } }
