/* Portal360 pricing calculator. Light cards that sit on the theme's dark bands. */
.p360-calc { --p360-navy: #0c1e31; --p360-ink: #162a3b; --p360-muted: #4f6272; --p360-line: #dce5ea; --p360-cyan: #1fd8e8;
  max-width: 1160px; margin: 0 auto; color: var(--p360-ink); font: 15px/1.55 Inter, -apple-system, "Segoe UI", Arial, sans-serif; }
.p360-calc * { box-sizing: border-box; }
.p360-banner { background: #dff8f5; color: #124e52; padding: 10px 16px; border-radius: 10px; text-align: center; font-size: 13px; margin: 0 0 16px; }
.p360-card { background: #fff; border: 1px solid var(--p360-line); border-radius: 16px; padding: 22px; margin: 0 0 18px; }
.p360-card h2 { margin: 0 0 14px; font-size: 20px; color: var(--p360-ink); letter-spacing: -0.01em; }
.p360-card p { color: var(--p360-muted); margin: 0 0 12px; }
.p360-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 12px; }
.p360-calc label { display: block; font-weight: 600; font-size: 13px; color: var(--p360-ink); }
.p360-calc input[type=text], .p360-calc input[type=email], .p360-calc input[type=tel], .p360-calc input[type=number],
.p360-calc select, .p360-calc textarea { display: block; width: 100%; margin-top: 5px; padding: 11px; min-height: 44px;
  border: 1px solid #b9cad4; border-radius: 9px; font: inherit; background: #fff; color: var(--p360-ink); }
.p360-calc textarea { margin-bottom: 12px; }
.p360-check { display: flex !important; gap: 8px; align-items: flex-start; font-weight: 500 !important; margin: 8px 0; }
.p360-check input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.p360-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 14px; }
.p360-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border: 0; border-radius: 9px;
  background: var(--p360-navy); color: #fff; padding: 10px 16px; font: 700 14px/1.2 inherit; cursor: pointer; text-decoration: none; }
.p360-btn:hover, .p360-btn:focus-visible { background: #14324f; }
.p360-btn-alt { background: #dceff0; color: #123a40; }
.p360-btn-alt:hover, .p360-btn-alt:focus-visible { background: #c7e6e8; }
.p360-btn-danger { background: #fce6e5; color: #8e2525; }
.p360-btn:disabled { opacity: .6; cursor: wait; }
.p360-upload { position: relative; overflow: hidden; }
.p360-upload input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.p360-calc :focus-visible { outline: 3px solid #0b91b5; outline-offset: 2px; }
.p360-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.p360-metrics div { background: #eff8f8; padding: 14px; border-radius: 12px; }
.p360-metrics small { display: block; color: #3f6168; }
.p360-metrics strong { font-size: 24px; }
.p360-tablewrap { overflow-x: auto; position: relative; }
.p360-calc table { width: 100%; border-collapse: collapse; min-width: 640px; }
.p360-calc th, .p360-calc td { padding: 10px 9px; border-bottom: 1px solid #e5edf0; text-align: left; vertical-align: top; }
.p360-calc thead th { background: #f2f6f8; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.p360-calc td small { display: block; color: var(--p360-muted); }
.p360-calc tfoot th { background: #f7fafb; }
.p360-warn { background: #fff3d7; color: #70500a !important; padding: 11px 14px; border-radius: 9px; }
.p360-ok { background: #e3f7ed; color: #13532f !important; padding: 11px 14px; border-radius: 9px; }
.p360-bad { background: #fff0ed; color: #8e2525 !important; padding: 11px 14px; border-radius: 9px; }
.p360-error { color: #a32020 !important; font-weight: 600; }
.p360-status:empty { display: none; }
.p360-small { font-size: 13px; }
.p360-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.p360-calc .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
#p360-import ul { margin: 8px 0 12px 18px; color: var(--p360-muted); }
@media (max-width: 860px) { .p360-grid, .p360-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .p360-grid, .p360-metrics { grid-template-columns: 1fr; } }
@media print {
  .p360-noprint, .p360-banner, #p360-fallback-note { display: none !important; }
  .p360-card { border: 0; padding: 0; }
}
.p360-calc label.p360-btn { color: #fff; font-size: 14px; font-weight: 700; display: inline-flex; }
.p360-calc a { color: #0b6e8a; text-decoration: underline; }
.p360-check span { flex: 1; }
