
  #pc-root { font-family:'Inter',sans-serif; color:#0f172a; text-align:left; display:flex; flex-direction:column; height:100%; max-height:inherit; background:#fff; box-sizing:border-box; }
  #pc-root *, #pc-root *::before, #pc-root *::after { box-sizing:border-box; }
  #pc-root input[type="number"]::-webkit-outer-spin-button, #pc-root input[type="number"]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
  #pc-root input[type="number"] { -moz-appearance:textfield; }
  .pc-head { display:flex; align-items:center; gap:10px; padding:12px 14px 10px; border-bottom:1px solid #e2e8f0; flex:0 0 auto; }
  .pc-head .grow { flex:1; min-width:0; }
  .pc-head h2 { margin:0; font-size:18px; font-weight:800; color:#0f172a; letter-spacing:-.2px; text-align:left !important; }
  .pc-sub { font-size:11px; color:#64748b; font-weight:600; margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pc-sub.err { color:#b91c1c; }
  .pc-cfg { display:flex; gap:6px; flex:0 0 auto; }
  .pc-cfg label { display:inline-flex; align-items:center; gap:5px; height:30px; padding:0 4px 0 10px; border:1px solid #e2e8f0; border-radius:15px; background:#f8fafc; font-size:10px; font-weight:800; color:#475569; text-transform:uppercase; letter-spacing:.3px; }
  .pc-cfg input { width:52px; height:22px; border:1px solid #cbd5e1; border-radius:11px; text-align:center; font:700 12px 'Inter',sans-serif; color:#1e2a44; background:#fff; outline:none; padding:0 4px; }
  .pc-cfg input:focus { border-color:#1e2a44; }
  html body #pc-root .tsp-icon-btn { width:34px !important; height:34px !important; min-width:34px !important; border-radius:50% !important; background:#e11d48 !important; color:#fff !important; border:none; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; cursor:pointer; box-shadow:0 2px 6px rgba(225,29,72,.35); padding:0; }
  html body #pc-root .tsp-icon-btn:hover { background:#be123c !important; }
  #pc-root .tsp-icon-btn svg { width:20px; height:20px; fill:#fff !important; }
  .pc-body { flex:1 1 auto; overflow-y:auto; padding:10px 14px 12px; overscroll-behavior:contain; }
  .pc-tbl { width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; border:1px solid #e2e8f0; border-radius:10px; overflow:visible; }
  .pc-tbl th { background:#f8fafc; color:#475569; font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.3px; padding:7px 5px; text-align:left; border-bottom:1px solid #e2e8f0; white-space:nowrap; }
  .pc-tbl th:first-child { border-top-left-radius:10px; } .pc-tbl th:last-child { border-top-right-radius:10px; }
  .pc-tbl th.r, .pc-tbl td.r { text-align:right; }
  .pc-tbl td { padding:5px 5px; border-bottom:1px solid #f1f5f9; vertical-align:top; font-size:12px; }
  .pc-tbl tr:last-child td { border-bottom:none; }
  .pc-in { width:100%; height:30px; border:1px solid #e2e8f0; border-radius:7px; padding:0 7px; font:600 12px 'Inter',sans-serif; color:#0f172a; background:#fff; outline:none; }
  .pc-in:focus { border-color:#1e2a44; box-shadow:0 0 0 2px rgba(30,42,68,.12); }
  .pc-in.num { text-align:right; }
  .pc-in.pn { text-transform:uppercase; font-weight:800; color:#1d4ed8; }
  .pc-in.dl { color:#b91c1c; } .pc-in.pr { color:#047857; font-weight:800; } .pc-in.mk { color:#6d28d9; text-align:center; } .pc-in.qt { text-align:center; }
  .pc-calc { height:30px; display:flex; align-items:center; justify-content:flex-end; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
  .pc-calc.tot { font-weight:800; color:#0f172a; }
  .pc-calc.tx { color:#64748b; }
  .pc-flag { display:flex; align-items:center; gap:4px; margin-top:3px; min-height:16px; flex-wrap:wrap; }
  .pc-badge { display:inline-flex; align-items:center; height:16px; padding:0 6px; border-radius:8px; font-size:9.5px; font-weight:800; letter-spacing:.2px; white-space:nowrap; }
  .pc-badge.in { background:#ecfdf5; color:#047857; border:1px solid #a7f3d0; }
  .pc-badge.new { background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; }
  .pc-badge.chg { background:#fffbeb; color:#b45309; border:1px solid #fde68a; }
  .pc-badge.enc { background:#eef2ff; color:#4f46e5; border:1px solid #c7d2fe; }
  .pc-dbv { font-size:9.5px; color:#b45309; font-weight:700; white-space:nowrap; }
  .pc-del { width:26px; height:26px; margin-top:2px; border:none; border-radius:50%; background:#fef2f2; color:#e11d48; font-size:16px; font-weight:800; line-height:1; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; }
  .pc-del:hover { background:#fee2e2; }
  .pc-add-wrap { display:flex; justify-content:center; margin:8px 0 2px; }
  .pc-add { height:30px; padding:0 14px; border:1px dashed #94a3b8; border-radius:15px; background:#fff; color:#1e2a44; font:700 12px 'Inter',sans-serif; cursor:pointer; }
  .pc-add:hover { background:#f1f5f9; border-style:solid; }
  .pc-lower { display:grid; grid-template-columns:1fr 300px; gap:12px; margin-top:12px; align-items:start; }
  .pc-extra { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
  .pc-extra .box { background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:7px 9px; }
  .pc-extra label { display:block; font-size:10px; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.3px; margin-bottom:4px; }
  .pc-extra .hint { grid-column:1 / -1; font-size:10.5px; color:#94a3b8; font-weight:600; margin-top:-2px; }
  .pc-sum { background:#f8fafc; border:1px solid #e2e8f0; border-radius:12px; padding:10px 12px; }
  .pc-sum .ln { display:flex; justify-content:space-between; align-items:baseline; font-size:12px; font-weight:600; color:#475569; padding:2px 0; font-variant-numeric:tabular-nums; }
  .pc-sum .ln b { color:#0f172a; font-weight:700; }
  .pc-sum .ln.sub { border-top:1px dashed #cbd5e1; margin-top:4px; padding-top:6px; }
  .pc-sum .ln.tx b { color:#be123c; }
  .pc-sum .grand { display:flex; justify-content:space-between; align-items:baseline; margin-top:6px; padding:8px 10px; border-radius:9px; background:#ecfdf5; border:1px solid #a7f3d0; }
  .pc-sum .grand span { font-size:10px; font-weight:800; color:#047857; text-transform:uppercase; letter-spacing:.3px; }
  .pc-sum .grand b { font-size:20px; font-weight:800; color:#047857; font-variant-numeric:tabular-nums; }
  .pc-sum .small { display:flex; justify-content:space-between; font-size:11px; color:#64748b; font-weight:600; margin-top:6px; font-variant-numeric:tabular-nums; }
  .pc-sum .small b { color:#334155; font-weight:700; }
  .pc-sum .small b.neg { color:#b91c1c; } .pc-sum .small b.pos { color:#047857; }
  .pc-foot { display:flex; gap:8px; align-items:center; padding:10px 14px; border-top:1px solid #e2e8f0; background:#fff; flex:0 0 auto; flex-wrap:wrap; }
  .pc-foot .sp { flex:1; }
  .pc-btn { height:32px; padding:0 14px; border-radius:16px; font:700 12px 'Inter',sans-serif; cursor:pointer; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; border:1px solid #cbd5e1; background:#fff; color:#1e2a44; }
  .pc-btn:hover { background:#f1f5f9; }
  .pc-btn svg { width:15px; height:15px; fill:currentColor; }
  .pc-btn.pri { background:#1e2a44; border-color:#1e2a44; color:#fff; }
  .pc-btn.pri:hover { background:#283552; }
  .pc-btn.db { border-color:#fcd34d; background:#fffbeb; color:#92400e; }
  .pc-btn.db:hover { background:#fef3c7; }
  .pc-btn.db.none { border-color:#e2e8f0; background:#fff; color:#94a3b8; }
  .pc-btn .cnt { min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:#f59e0b; color:#fff; font-size:10.5px; display:inline-flex; align-items:center; justify-content:center; }
  .pc-btn.db.none .cnt { display:none; }
  .pc-btn .sm { display:none; }
  .pc-btn:disabled { opacity:.6; cursor:default; }
  .pc-tk { display:none; margin-top:12px; border:1px solid #c7d2fe; background:#eef2ff; border-radius:12px; padding:10px 12px; }
  .pc-tk.on { display:block; }
  .pc-tk .tt { font-size:12px; font-weight:800; color:#1e2a44; margin-bottom:6px; display:flex; justify-content:space-between; align-items:center; gap:8px; }
  .pc-tk .tt span { font-size:11px; color:#64748b; font-weight:600; }
  .pc-tk-list { max-height:180px; overflow-y:auto; display:flex; flex-direction:column; gap:4px; margin-top:6px; }
  .pc-tk-it { display:flex; justify-content:space-between; gap:8px; padding:6px 9px; border-radius:8px; background:#fff; border:1px solid #e2e8f0; cursor:pointer; font-size:12px; }
  .pc-tk-it:hover { border-color:#1e2a44; }
  .pc-tk-it b { color:#1d4ed8; font-weight:800; } .pc-tk-it span { color:#64748b; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .pc-tk-msg { font-size:11.5px; color:#64748b; font-weight:600; padding:6px 2px; }
  #pc-pdd { display:none; position:fixed; z-index:99000; background:#fff; border:1px solid #e2e8f0; border-radius:10px; box-shadow:0 12px 30px rgba(15,23,42,.18); padding:4px; max-height:300px; overflow-y:auto; font-family:'Inter',sans-serif; text-align:left; }
  #pc-pdd .pdd-it { padding:6px 9px; border-radius:7px; cursor:pointer; }
  #pc-pdd .pdd-it.on, #pc-pdd .pdd-it:hover { background:#eff6ff; }
  #pc-pdd .pdd-top { display:flex; justify-content:space-between; gap:12px; font-size:12.5px; } #pc-pdd .pdd-top b { color:#1d4ed8; font-weight:900; } #pc-pdd .pdd-top span { color:#059669; font-weight:900; }
  #pc-pdd .pdd-nm { font-size:11px; color:#64748b; font-weight:600; margin-top:1px; } #pc-pdd .pdd-nm i { font-style:normal; background:#e0e7ff; color:#4f46e5; padding:1px 4px; border-radius:4px; font-size:9px; font-weight:800; }
  #pc-pdd .pdd-msg { padding:10px; font-size:11.5px; color:#64748b; font-weight:700; max-width:320px; line-height:1.4; }
  #pc-pdd .pdd-act, #pc-pdd .pdd-foot { margin-top:6px; font-size:11px; font-weight:700; color:#64748b; }
  #pc-pdd .pdd-foot { margin:2px 0 0; padding:5px 9px 4px; border-top:1px solid #f1f5f9; }
  #pc-pdd a { color:#1d4ed8; text-decoration:none; } #pc-pdd a:hover { text-decoration:underline; }
  #pc-pdd .pdd-spin { display:inline-block; width:10px; height:10px; border:2px solid #cbd5e1; border-top-color:#1e2a44; border-radius:50%; animation:pcSpin .8s linear infinite; vertical-align:-1px; margin-left:4px; } @keyframes pcSpin { to { transform:rotate(360deg); } }
  .pc-cf { text-align:left; font-family:'Inter',sans-serif; }
  .pc-cf table { width:100%; border-collapse:collapse; font-size:12px; margin-top:4px; }
  .pc-cf th { font-size:9.5px; text-transform:uppercase; color:#475569; background:#f8fafc; text-align:left; padding:5px 6px; border-bottom:1px solid #e2e8f0; }
  .pc-cf td { padding:5px 6px; border-bottom:1px solid #f1f5f9; vertical-align:top; }
  .pc-cf .old { color:#94a3b8; text-decoration:line-through; } .pc-cf .nw { color:#047857; font-weight:800; }
  .pc-cf .tag { display:inline-block; font-size:9.5px; font-weight:800; padding:1px 6px; border-radius:8px; }
  .pc-cf .tag.n { background:#eff6ff; color:#1d4ed8; } .pc-cf .tag.u { background:#fffbeb; color:#b45309; }
  @media (max-width:640px) {
    .pc-head { padding:10px 12px 8px; flex-wrap:wrap; }
    .pc-head .grow { order:1; flex:1 1 60%; }
    .pc-head .tsp-icon-btn { order:2; }
    .pc-cfg { order:3; flex:1 1 100%; }
    .pc-cfg label { flex:1; justify-content:space-between; }
    .pc-body { padding:10px 12px; }
    .pc-tbl, .pc-tbl tbody { display:block; border:none; }
    .pc-tbl thead { display:none; }
    .pc-tbl tr { display:grid; grid-template-columns:1fr 1fr; gap:6px 8px; position:relative; border:1px solid #e2e8f0; border-radius:12px; padding:10px 10px 8px; margin-bottom:8px; background:#fff; }
    .pc-tbl td { display:block; padding:0; border:none !important; min-width:0; }
    .pc-tbl td::before { content:attr(data-l); display:block; font-size:9.5px; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.3px; margin-bottom:2px; }
    .pc-tbl td.c-pn { grid-column:1 / -1; padding-right:32px; }
    .pc-tbl td.c-nm { grid-column:1 / -1; }
    .pc-tbl td.c-x { position:absolute; top:6px; right:6px; }
    .pc-tbl td.c-x::before { display:none; }
    .pc-calc { justify-content:flex-start; }
    .pc-tbl td.r { text-align:left; }
    .pc-lower { grid-template-columns:1fr; }
    .pc-foot { padding:8px 12px calc(8px + env(safe-area-inset-bottom)); }
    .pc-foot .sp { display:none; }
    .pc-foot .pc-btn { flex:1 1 0; min-width:0; justify-content:center; padding:0 10px; }
    .pc-foot #pc-clear { flex:0 0 auto; }
    .pc-btn .lg { display:none; } .pc-btn .sm { display:inline; }
    .pc-foot .pc-btn.pri { flex:1 1 100%; }
  }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-tbl { border:1px solid #e2e8f0; border-radius:12px; }
  @media (min-width:761px) { html body #parts-calc-modal#parts-calc-modal > .custom-modal-box { zoom:0.86; max-height:calc(94vh / 0.86) !important; } }   
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-tbl th { background:#1e3a5f; color:#fff; font-size:10px; font-weight:800; letter-spacing:.5px; padding:9px 6px; border-bottom:0; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-tbl th:first-child { border-top-left-radius:11px; } html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-tbl th:last-child { border-top-right-radius:11px; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-tbl td { padding:6px 5px; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-in { height:32px; border:1px solid #e2e8f0; border-radius:7px; background:#f8fafc; font:600 13px var(--tsp-ff, Inter, sans-serif); color:#0f172a; padding:0 6px; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-in:focus { border-color:#3b82f6; background:#fff; box-shadow:0 0 0 3px rgba(59,130,246,.14); }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-in.pn { color:#2563eb; font-weight:800; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-in.dl { color:#0f172a; font-weight:700; } html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-in.qt { font-weight:700; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-in.mk { color:#7c3aed; font-weight:700; } html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-in.pr { color:#0f172a; font-weight:800; font-size:14px; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-calc { height:32px; font-size:13px; } html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-calc.tx { color:#94a3b8; font-weight:600; font-size:12px; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-lower { grid-template-columns:1fr 280px; }
  @media (max-width:860px) { html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-lower { grid-template-columns:1fr; } }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-extra { display:block; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs { display:grid; grid-template-columns:repeat(auto-fit, minmax(118px, 1fr)); grid-auto-rows:1fr; gap:6px; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-cell { position:relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; padding:8px 26px 8px 12px; border:1px solid #e2e8f0; border-radius:12px; background:#fff; min-width:0; box-sizing:border-box; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-l { display:block; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font:700 9.5px var(--tsp-ff, Inter, sans-serif); letter-spacing:.16em; text-transform:uppercase; color:#64748b; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-service .qf-l { color:#6d28d9; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-v { display:block; width:100%; height:24px; padding:0 2px; margin-left:-2px; border:1px dashed transparent; border-radius:6px; background:transparent; font:600 14px var(--tsp-ff, Inter, sans-serif); color:#0f172a; text-align:left; outline:none; box-sizing:border-box; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-v::placeholder { color:#cbd5e1; font-weight:500; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-v:hover { border-color:#cbd5e1; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-v:focus { border:1px solid #3b82f6; background:#fff; box-shadow:0 0 0 3px rgba(59,130,246,.14); }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-x { position:absolute; top:50%; right:6px; transform:translateY(-50%); width:18px; height:18px; padding:0; border:0; border-radius:50%; background:transparent; color:#ef4444; font:800 14px/14px var(--tsp-ff, Inter, sans-serif); cursor:pointer; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-x:hover { background:#fee2e2; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-cell.qf-zero .qf-x { display:none; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-svc-add { border:1.5px dashed #6366f1; background:#eef2ff; cursor:pointer; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-svc-add:hover { background:#e0e7ff; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-svc-add .qf-l { color:#4338ca; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-plus { display:inline-flex; align-items:center; justify-content:center; height:26px; padding:0 12px; border-radius:7px; background:#4f46e5; color:#fff; font:700 13px var(--tsp-ff, Inter, sans-serif); white-space:nowrap; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-extra .hint { margin-top:6px; font-size:11px; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-sum { background:#fff; border:1px solid #e6ebf1; border-radius:12px; padding:8px 0 10px; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-sum .ln { padding:4px 16px; font-size:12.5px; font-weight:500; color:#64748b; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-sum .ln b { font-size:13px; font-weight:600; color:#1e293b; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-sum .ln.tx b { color:#1e293b; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-sum .ln.sub { margin:4px 16px 0; padding:6px 0 4px; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-sum .grand { margin:6px 12px 0; }
  html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-sum .small { padding:0 16px; }
  html[data-theme="dark"] html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-cell { background:#0f172a; border-color:#334155; } html[data-theme="dark"] html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-v { color:#e2e8f0; } html[data-theme="dark"] html body #parts-calc-modal#parts-calc-modal#parts-calc-modal .pc-fs .qf-svc-add { background:#1e1b4b; border-color:#6366f1; }
