/* Customer workspace shares the original site's visual system. */
.portal-checkbox{display:flex!important;align-items:flex-start;gap:12px!important;font-weight:400!important;line-height:1.8}
.admin-form .portal-checkbox input[type=checkbox]{width:18px;min-height:18px;flex:0 0 18px;margin-top:4px;accent-color:var(--blue)}
.portal-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.portal-product-grid .admin-card{margin:0;display:flex;flex-direction:column;gap:15px}
.portal-product-grid p,.portal-copy{color:var(--muted);font-size:.8rem;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.portal-price{font:700 1.7rem Sora,Inter,sans-serif;color:var(--text)}
.portal-price small{font:400 .7rem Inter,sans-serif;color:var(--muted);margin-left:8px}
.portal-product-grid .btn{margin-top:auto;align-self:flex-start}
.portal-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:22px 0}
.portal-details dt{font-size:.66rem;color:var(--dim);margin-bottom:7px}.portal-details dd{font-size:.87rem;overflow-wrap:anywhere;line-height:1.7}
.portal-thread{display:grid;gap:15px;margin-bottom:26px}.portal-message{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--bg2)}
.portal-message.admin{border-color:rgba(139,92,246,.3);background:rgba(139,92,246,.055)}
.portal-message-heading{display:flex;justify-content:space-between;gap:15px;font-size:.68rem;margin-bottom:12px;color:var(--dim)}
.portal-message-heading strong{color:var(--text)}.portal-message p{white-space:pre-wrap;color:var(--muted);font-size:.8rem;line-height:1.85;overflow-wrap:anywhere}
.portal-block{display:grid;gap:18px}.portal-block h2{margin-bottom:2px}.portal-block .admin-form{margin-top:15px}
.portal-private-key{display:block;padding:15px;border:1px solid var(--line2);border-radius:12px;background:var(--bg2);font-family:monospace;overflow-wrap:anywhere;white-space:pre-wrap;font-size:.84rem}
.portal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.portal-pagination{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:.75rem;color:var(--muted);margin-top:20px}
.portal-chip{display:inline-flex;align-items:center;border:1px solid var(--line2);border-radius:8px;padding:5px 10px;font-size:.63rem;color:var(--cyan)}
.portal-payment-instructions{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem;line-height:1.9;color:var(--muted);padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--bg2)}
@media(max-width:650px){.portal-product-grid{grid-template-columns:1fr}.portal-details{grid-template-columns:1fr}.portal-message-heading{flex-wrap:wrap}.customer-body .admin-breadcrumb>span:first-of-type{display:none}}
@media print{.customer-body .admin-sidebar,.customer-body .admin-topbar,.customer-body .admin-bottom,.customer-body form,.portal-actions{display:none!important}.customer-body .admin-shell{display:block}.customer-body .admin-main{padding:0}.customer-body .admin-card{break-inside:avoid;background:white;color:black}.customer-body{background:white!important;color:black!important}.customer-body .portal-copy,.customer-body .portal-details dt{color:#333}}


/* OSP compact settings switches – the native input remains keyboard accessible.
   Crucially resets generic .admin-form input dimensions for checkbox controls. */
.admin-form input[type="checkbox"]:not(.osp-setting-switch) {
  box-sizing:border-box!important;
  width:18px!important; min-width:18px!important; max-width:18px!important;
  height:18px!important; min-height:18px!important; max-height:18px!important;
  padding:0!important; margin:1px 0 0!important;
  flex:0 0 18px!important; border-radius:4px;
  accent-color:#477df4; vertical-align:middle; cursor:pointer;
}
.admin-form .portal-checkbox:not(.osp-setting-row),
.admin-form .alex-consent,
.admin-form label:has(>input[type="checkbox"]:not(.osp-setting-switch)) {
  display:flex!important; flex-direction:row!important; align-items:flex-start!important;
  justify-content:flex-start; gap:11px!important; line-height:1.65;
}
.osp-setting-row {
  display:flex!important; flex-direction:row!important; align-items:center!important;
  justify-content:space-between!important; gap:18px!important;
  min-width:0; margin:0; padding:15px 17px;
  background:var(--bg2); border:1px solid var(--line2);
  border-radius:15px; cursor:pointer; transition:border-color .18s ease,background .18s ease;
}
.osp-setting-row:hover { border-color:var(--cyan); }
.osp-setting-row .osp-setting-text { display:block; flex:1 1 auto; min-width:0; }
.osp-setting-row .osp-setting-text strong { display:block; color:var(--text); font-weight:700; font-size:.82rem; line-height:1.4; }
.osp-setting-row .osp-setting-text small {
  display:block; margin-top:5px; color:var(--muted); font-size:.72rem;
  font-weight:400; line-height:1.55; overflow-wrap:anywhere;
}
.admin-form input.osp-setting-switch[type="checkbox"] {
  -webkit-appearance:none!important; appearance:none!important;
  box-sizing:border-box!important; position:relative!important;
  display:inline-block!important; overflow:visible!important;
  width:46px!important; min-width:46px!important; max-width:46px!important;
  height:27px!important; min-height:27px!important; max-height:27px!important;
  padding:0!important; margin:0!important; flex:0 0 46px!important;
  border:1px solid var(--line2)!important; border-radius:999px!important;
  background:var(--panel2)!important; box-shadow:inset 0 1px 3px rgba(0,0,0,.15);
  cursor:pointer; vertical-align:middle; transition:background .18s ease,border-color .18s ease;
}
.admin-form input.osp-setting-switch[type="checkbox"]::before {
  content:""; position:absolute; display:block; top:3px; left:3px;
  width:19px; height:19px; border-radius:50%;
  background:var(--muted); box-shadow:0 1px 3px rgba(0,0,0,.22);
  transition:transform .18s ease,background .18s ease;
}
.admin-form input.osp-setting-switch[type="checkbox"]:checked {
  background:linear-gradient(110deg,#06bedc,#596ffa)!important;
  border-color:transparent!important;
}
.admin-form input.osp-setting-switch[type="checkbox"]:checked::before {
  transform:translateX(19px); background:#fff;
}
.admin-form input.osp-setting-switch[type="checkbox"]:focus-visible {
  outline:3px solid var(--cyan)!important; outline-offset:3px!important;
}
.admin-form input.osp-setting-switch[type="checkbox"]:disabled { opacity:.5; cursor:not-allowed; }
.osp-setting-row:has(.osp-setting-switch:disabled) { cursor:default; }
@media(max-width:600px) {
  .osp-setting-row { padding:13px 14px; gap:12px!important; }
  .osp-setting-row .osp-setting-text strong { font-size:.78rem; }
  .osp-setting-row .osp-setting-text small { font-size:.68rem; }
}
@media(prefers-reduced-motion:reduce) {
  .osp-setting-row,.admin-form input.osp-setting-switch[type="checkbox"],
  .admin-form input.osp-setting-switch[type="checkbox"]::before { transition:none!important; }
}
@media(forced-colors:active) {
  .admin-form input.osp-setting-switch[type="checkbox"] { border:2px solid ButtonText!important; background:Canvas!important; }
  .admin-form input.osp-setting-switch[type="checkbox"]:checked { background:Highlight!important; }
  .admin-form input.osp-setting-switch[type="checkbox"]::before { background:ButtonText; }
  .admin-form input.osp-setting-switch[type="checkbox"]:checked::before { background:HighlightText; }
}


/* 2026-10-13 rental coupon polish */
.osp-renew-form{display:grid;gap:16px}
.osp-coupon-field{
  display:grid!important;
  gap:11px!important;
  padding:16px;
  border:1px solid var(--line2);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(16,25,53,.82),rgba(11,19,42,.96));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 16px 30px -26px rgba(2,8,23,.92);
}
.osp-coupon-field__meta{display:grid;gap:4px;min-width:0}
.osp-coupon-field__meta strong{display:flex;align-items:center;gap:6px;font-size:.86rem;line-height:1.3;color:var(--text)}
.osp-coupon-field__meta strong small{font-size:.7rem;font-weight:600;color:var(--cyan)}
.osp-coupon-field__meta > small{font-size:.7rem;line-height:1.55;color:var(--muted);font-weight:400;overflow-wrap:anywhere}
.admin-form .osp-coupon-field input:not([type=hidden]),
.osp-renew-form .osp-coupon-field input:not([type=hidden]){
  min-height:52px;
  padding:14px 16px;
  border:1px solid rgba(120,150,255,.24);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(4,10,28,.84),rgba(9,16,37,.96));
  color:var(--text);
  font:700 .92rem/1.2 Inter,system-ui,sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.admin-form .osp-coupon-field input::placeholder,
.osp-renew-form .osp-coupon-field input::placeholder{color:var(--dim);letter-spacing:.02em;text-transform:none;font-weight:500}
.admin-form .osp-coupon-field input:focus,
.osp-renew-form .osp-coupon-field input:focus{outline:none;border-color:rgba(34,211,238,.52);box-shadow:0 0 0 4px rgba(34,211,238,.10), inset 0 1px 0 rgba(255,255,255,.05)}
body.light .osp-coupon-field{background:linear-gradient(145deg,#ffffff,#f3f6fe);border-color:rgba(86,114,176,.16);box-shadow:0 14px 26px -24px rgba(38,63,117,.28), inset 0 1px 0 rgba(255,255,255,.95)}
body.light .admin-form .osp-coupon-field input:not([type=hidden]),
body.light .osp-renew-form .osp-coupon-field input:not([type=hidden]){background:linear-gradient(180deg,#ffffff,#f9fbff);border-color:rgba(86,114,176,.2);color:#17233f}
@media(max-width:650px){
  .osp-coupon-field{padding:14px;border-radius:16px}
  .osp-coupon-field__meta strong{font-size:.81rem}
  .admin-form .osp-coupon-field input:not([type=hidden]),
  .osp-renew-form .osp-coupon-field input:not([type=hidden]){min-height:49px;font-size:.88rem;padding-inline:14px}
}
