/*
 * Price calculator.
 *
 * Ported from the standalone estimator. Every selector is scoped under
 * .bp-calc so nothing here can reach the rest of the site, and the dark
 * palette has been swapped for the theme's light one. The quotation
 * document keeps its own paper colours on purpose.
 */

.bp-calc{
    --bg: #fbf8f1;
    --panel: #ffffff;
    --panel-2: #fbf9f4;
    --grid-line: #e6e0d3;
    --paper: #18312b;
    --muted: #6b7873;
    --smart: #5b7c99;
    --premium: #b8814f;
    --exclusive: #c9a227;
    --danger: #c96b5a;
  }
  .bp-calc *{ box-sizing: border-box; }
  .bp-calc{
    margin:0;
    background: var(--bg);
    color: var(--paper);
    font-family: 'Noto Sans Thai', sans-serif;
    -webkit-font-smoothing: antialiased;
  }
  .bp-calc .wrap{
    max-width: 760px;
    margin: 0 auto;
    padding: 36px 20px 60px;
    background-image:
      linear-gradient(var(--grid-line) 1px, transparent 1px),
      linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
    background-size: 28px 28px;
    background-position: -1px -1px;
  }
  .bp-calc .eyebrow{
    font-size: 12px;
    letter-spacing: 0.14em;
    color: var(--muted);
    text-transform: uppercase;
    margin-bottom: 8px;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .bp-calc .eyebrow::before{
    content:"";
    width: 22px;
    height: 1px;
    background: var(--muted);
    display:inline-block;
  }
  .bp-calc h1{
    font-family: 'Noto Serif Thai', serif;
    font-weight: 600;
    font-size: 30px;
    line-height: 1.35;
    margin: 0 0 6px;
  }
  .bp-calc .sub{
    color: var(--muted);
    font-size: 14.5px;
    margin: 0 0 28px;
    line-height: 1.6;
  }

  /* mode toggle */
  .bp-calc .mode-toggle{
    display:flex;
    background: var(--panel);
    border: 1px solid var(--grid-line);
    border-radius: 10px;
    padding: 4px;
    margin-bottom: 22px;
  }
  .bp-calc .mode-toggle button{
    flex:1;
    padding: 12px 10px;
    background: transparent;
    border: none;
    color: var(--muted);
    font-family: 'Noto Sans Thai', sans-serif;
    font-size: 14.5px;
    font-weight: 600;
    border-radius: 7px;
    cursor: pointer;
    transition: background .18s ease, color .18s ease;
  }
  .bp-calc .mode-toggle button.active{
    background: var(--panel-2);
    color: var(--paper);
    box-shadow: inset 0 0 0 1px var(--grid-line);
  }

  .bp-calc section{
    background: var(--panel);
    border: 1px solid var(--grid-line);
    border-radius: 12px;
    padding: 22px;
    margin-bottom: 18px;
  }
  .bp-calc .section-label{
    font-size: 12.5px;
    letter-spacing: .06em;
    color: var(--muted);
    text-transform: uppercase;
    margin-bottom: 14px;
  }

  /* probability bars */
  .bp-calc .prob-list{ display:flex; flex-direction:column; gap:14px; }
  .bp-calc .prob-top{
    display:flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 6px;
  }
  .bp-calc .prob-name{
    font-family:'Noto Serif Thai', serif;
    font-weight: 600;
    font-size: 15px;
  }
  .bp-calc .prob-ref{
    font-family:'Noto Sans Thai', sans-serif;
    font-weight: 400;
    font-size: 12px;
    color: var(--muted);
    margin-left: 6px;
  }
  .bp-calc .prob-pct{
    font-family:'Noto Serif Thai', serif;
    font-weight: 700;
    font-size: 17px;
  }
  .bp-calc .prob-track{
    height: 10px;
    border-radius: 6px;
    background: var(--bg);
    border: 1px solid var(--grid-line);
    overflow: hidden;
  }
  .bp-calc .prob-fill{
    height: 100%;
    width: 0%;
    border-radius: 6px;
    transition: width .35s ease;
  }
  .bp-calc .prob-row[data-class="smart"] .prob-fill{ background: var(--smart); }
  .bp-calc .prob-row[data-class="premium"] .prob-fill{ background: var(--premium); }
  .bp-calc .prob-row[data-class="exclusive"] .prob-fill{ background: var(--exclusive); }
  .bp-calc .prob-row[data-class="smart"] .prob-pct{ color: var(--smart); }
  .bp-calc .prob-row[data-class="premium"] .prob-pct{ color: var(--premium); }
  .bp-calc .prob-row[data-class="exclusive"] .prob-pct{ color: var(--exclusive); }
  .bp-calc .prob-row.best .prob-name::after{
    content: "แนะนำ";
    margin-left: 8px;
    font-family: 'Noto Sans Thai', sans-serif;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--bg);
    background: currentColor;
    padding: 2px 7px;
    border-radius: 20px;
    vertical-align: middle;
  }
  .bp-calc .prob-row.best .prob-name{ position:relative; }
  .bp-calc .prob-note{
    margin: 14px 0 0;
    font-size: 12.5px;
    color: var(--muted);
    text-align: center;
  }

  /* input row */
  .bp-calc .input-row{
    display:flex;
    align-items:center;
    gap: 10px;
    background: var(--bg);
    border: 1px solid var(--grid-line);
    border-radius: 10px;
    padding: 4px 4px 4px 16px;
  }
  .bp-calc .input-row label{
    font-size: 14px;
    color: var(--muted);
    white-space: nowrap;
  }
  .bp-calc .input-row input{
    flex:1;
    background: transparent;
    border: none;
    color: var(--paper);
    font-family: 'Noto Sans Thai', sans-serif;
    font-size: 20px;
    font-weight: 600;
    padding: 12px 4px;
    outline: none;
    min-width: 0;
  }
  .bp-calc .input-row .unit{
    font-size: 13.5px;
    color: var(--muted);
    background: var(--panel-2);
    padding: 10px 14px;
    border-radius: 8px;
    white-space:nowrap;
  }

  /* result / blueprint */
  .bp-calc .result{
    display:flex;
    gap: 20px;
    align-items:center;
  }
  .bp-calc .blueprint{
    flex: 0 0 140px;
  }
  .bp-calc .blueprint svg{ width:100%; height:auto; display:block; }
  .bp-calc .result-figures{ flex:1; }
  .bp-calc .result-line{
    display:flex;
    justify-content: space-between;
    align-items:baseline;
    padding: 9px 0;
    border-bottom: 1px dashed var(--grid-line);
  }
  .bp-calc .result-line:last-child{ border-bottom:none; }
  .bp-calc .result-line .k{ color: var(--muted); font-size: 13.5px; }
  .bp-calc .result-line .v{
    font-family:'Noto Serif Thai', serif;
    font-size: 19px;
    font-weight: 600;
  }
  .bp-calc .result-line .v.big{ font-size: 26px; }

  /* form fields */
  .bp-calc .field-grid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .bp-calc .field{ display:flex; flex-direction:column; gap:6px; }
  .bp-calc .field.full{ grid-column: 1 / -1; }
  .bp-calc .field label{
    font-size: 13px;
    color: var(--muted);
  }
  .bp-calc .field input, .bp-calc .field select{
    background: var(--bg);
    border: 1px solid var(--grid-line);
    border-radius: 8px;
    padding: 11px 12px;
    color: var(--paper);
    font-family: 'Noto Sans Thai', sans-serif;
    font-size: 14.5px;
    outline:none;
  }
  .bp-calc .field input:focus, .bp-calc .field select:focus{ border-color: var(--premium); }
  .bp-calc .field input::placeholder{ color: #9aa5a0; }

  .bp-calc .submit-btn{
    width:100%;
    padding: 15px;
    margin-top: 6px;
    background: var(--premium);
    color: #17110a;
    border: none;
    border-radius: 10px;
    font-family: 'Noto Sans Thai', sans-serif;
    font-weight: 700;
    font-size: 15.5px;
    cursor: pointer;
    transition: filter .15s ease;
  }
  .bp-calc .submit-btn:hover{ filter: brightness(1.08); }
  .bp-calc .submit-btn:disabled{ background: var(--grid-line); color: var(--muted); cursor:not-allowed; }

  .bp-calc .confirm{
    display:none;
    text-align:center;
    padding: 8px 0 4px;
  }
  .bp-calc .confirm.show{ display:block; }
  .bp-calc .confirm .check{
    width:44px; height:44px;
    border-radius: 50%;
    background: rgba(184,129,79,0.15);
    border: 1px solid var(--premium);
    display:flex; align-items:center; justify-content:center;
    margin: 0 auto 14px;
  }
  .bp-calc .confirm h2{
    font-family:'Noto Serif Thai', serif;
    font-size: 20px;
    margin: 0 0 6px;
  }
  .bp-calc .confirm p{ color: var(--muted); font-size: 14px; margin:0; }
  .bp-calc .hidden{ display:none !important; }

  /* quotation document */
  .bp-calc .quote-wrap{ display:none; }
  .bp-calc .quote-wrap.show{ display:block; }
  .bp-calc .quote-actions{
    display:flex;
    gap: 10px;
    margin-bottom: 16px;
  }
  .bp-calc .quote-actions button{
    flex:1;
    padding: 12px 10px;
    border-radius: 9px;
    border: 1px solid var(--grid-line);
    background: var(--panel-2);
    color: var(--paper);
    font-family: 'Noto Sans Thai', sans-serif;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
  }
  .bp-calc .quote-actions button.primary{ background: var(--premium); color:#17110a; border-color: var(--premium); }
  .bp-calc .quote-actions button:hover{ filter: brightness(1.08); }

  .bp-calc .quote-doc{
    background: #f7f3ea;
    color: #232a33;
    border-radius: 6px;
    padding: 34px 32px 26px;
    position: relative;
    font-family: 'Noto Sans Thai', sans-serif;
  }
  .bp-calc .quote-head{
    display:flex;
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 2px solid #232a33;
    padding-bottom: 16px;
    margin-bottom: 20px;
  }
  .bp-calc .quote-brand{ display:flex; gap: 12px; align-items:flex-start; }
  .bp-calc .quote-mark{
    width: 46px; height: 46px;
    border-radius: 4px;
    object-fit: contain;
    flex-shrink: 0;
  }
  .bp-calc .quote-company-name{
    font-family:'Noto Serif Thai', serif;
    font-weight:700;
    font-size: 19px;
    margin: 0 0 4px;
  }
  .bp-calc .quote-company-address{
    font-size: 12px;
    color: #565f6b;
    line-height: 1.6;
    max-width: 320px;
    white-space: pre-line;
  }
  .bp-calc .quote-meta{ text-align:right; }
  .bp-calc .quote-meta .quote-title{
    font-family:'Noto Serif Thai', serif;
    font-weight:700;
    font-size: 18px;
    margin: 0 0 6px;
  }
  .bp-calc .quote-meta .quote-meta-line{ font-size: 12px; color:#565f6b; }
  .bp-calc .quote-meta .quote-meta-line b{ color:#232a33; }

  .bp-calc .quote-section-title{
    font-size: 11.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #8a8060;
    margin: 0 0 8px;
  }
  .bp-calc .quote-cust-grid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 20px;
    font-size: 13px;
    margin-bottom: 22px;
  }
  .bp-calc .quote-cust-grid div span{ color:#565f6b; }

  .bp-calc table.quote-table{
    width:100%;
    border-collapse: collapse;
    margin-bottom: 20px;
    font-size: 13px;
  }
  .bp-calc table.quote-table th{
    background: #232a33;
    color: #f7f3ea;
    text-align:left;
    padding: 9px 10px;
    font-weight:600;
    font-size:12px;
  }
  .bp-calc table.quote-table th:last-child, .bp-calc table.quote-table td:last-child{ text-align:right; }
  .bp-calc table.quote-table td{
    padding: 10px 10px;
    border-bottom: 1px solid #ddd5c2;
  }
  .bp-calc table.quote-table tfoot td{
    border-bottom:none;
    border-top: 2px solid #232a33;
    font-family:'Noto Serif Thai', serif;
    font-weight:700;
    font-size: 16px;
    padding-top: 14px;
  }

  .bp-calc .quote-foot{
    display:flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 10px;
    min-height: 100px;
  }
  .bp-calc .quote-note{
    font-size: 11.5px;
    color:#8a8060;
    max-width: 280px;
    line-height: 1.6;
  }
  .bp-calc .quote-qr{ text-align:center; }
  .bp-calc .quote-qr-box{
    width: 92px; height: 92px;
    background: #fff;
    padding: 6px;
    border: 1px solid #ddd5c2;
    border-radius: 4px;
  }
  .bp-calc .quote-qr-box img, .bp-calc .quote-qr-box canvas{ width:100% !important; height:100% !important; }
  .bp-calc .quote-qr-caption{ font-size: 10.5px; color:#8a8060; margin-top: 6px; }

  .bp-calc .lock-note{
    font-size: 12.5px;
    color: var(--exclusive);
    background: rgba(201,162,39,0.08);
    border: 1px solid rgba(201,162,39,0.35);
    border-radius: 8px;
    padding: 10px 14px;
    margin: 0 0 18px;
    display:none;
  }
  .bp-calc .lock-note.show{ display:block; }
  .bp-calc #calc-wrap.locked{ opacity: .4; pointer-events: none; filter: grayscale(.4); }
  .bp-calc .contact-sent-note{
    display:none;
    font-size: 12.5px;
    color: var(--premium);
    margin: 10px 0 0;
  }
  .bp-calc .contact-sent-note.show{ display:block; }
  .bp-calc .contact-sent-note a{ color: var(--premium); }
  .bp-calc #contact-section.sent input, .bp-calc #contact-section.sent select{
    opacity: .55;
    pointer-events: none;
  }
  .bp-calc #contact-section.sent #btn-submit-contact{ display:none; }

  @media (max-width: 480px){
    .bp-calc .field-grid{ grid-template-columns: 1fr; }
    .bp-calc .result{ flex-direction: column; }
    .bp-calc .blueprint{ flex: 0 0 auto; width: 120px; }
  }
