:root{
    --ink:#0f172a; --muted:#475569; --line:#e5e7eb; --soft:#f8fafc; --card:#ffffff;
    --accent:#ec4899; --accent2:#db2777; --mint:#86efac; --sky:#a5f3fc; --lav:#e9d5ff;
    --ring:0 0 0 4px rgba(236,72,153,.18);
}
.bm-modal{position:fixed;inset:0;display:none;z-index:1100;align-items:center;justify-content:center;padding:24px}
.bm-modal.open{display:flex}
.bm-bg{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(3px)}
.bm-sheet{position:relative;width:min(980px,96vw);border-radius:22px;overflow:hidden;border:1px solid var(--line);
    box-shadow:0 40px 100px rgba(2,6,23,.35);background:linear-gradient(135deg,#fff,#fff0f8);    
    max-height: 88.5vh;
    margin: var(--header-h) 0 2vh 0;
    overflow: auto;}
/* Header */
.bm-hero{padding:18px 20px;background:linear-gradient(135deg,#ffe4ef,#eef9ff);border-bottom:1px solid var(--line)}
.bm-hero-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.bm-title{margin:0;font-size:1.25rem}
.brandline{height:6px;border-radius:999px;background:linear-gradient(90deg,#22d3ee,#60a5fa,#a78bfa,#f472b6,#fb7185);margin-top:12px}
/* Steps */
.steps{display:flex;gap:10px;margin:12px 0 0}
.step{flex:1;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-weight:800}
.step .dot{width:10px;height:10px;border-radius:50%}
.step:nth-child(1) .dot{background:#60a5fa}
.step:nth-child(2) .dot{background:#a78bfa}
.step:nth-child(3) .dot{background:#fb7185}

.bm-body{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;padding:16px}
@media (max-width:900px){.bm-body{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 12px 28px rgba(2,6,23,.06)}
/* Field */
.field{margin-bottom:12px}
label{font-weight:800;font-size:.95rem;display:block;margin:0 0 6px}
.control, select, textarea{width:100%;border:1.5px solid var(--line);border-radius:14px;background:#fff;padding:12px 14px 12px 40px}
.control:focus, select:focus, textarea:focus{outline:none;box-shadow:var(--ring);border-color:#f9a8d4}
.icon{position:relative}
.icon svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;opacity:.65}
.hint{color:var(--muted);font-size:.82rem;margin-top:4px}
/* Grid helpers */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:620px){.grid-2{grid-template-columns:1fr}}
/* Buttons */
.btns{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}
.btn{appearance:none;border:1px solid var(--line);border-radius:999px;padding:11px 16px;font-weight:900;background:#fff;cursor:pointer;transition:.2s}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:linear-gradient(90deg,var(--accent),var(--accent2));color:#fff;border:0;box-shadow:0 12px 24px rgba(236,72,153,.28)}
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:800}
.badge-soft{background:#fff0fa;border-color:#ffd4ea}
/* Summary */
.sum-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.sum-row{display:flex;justify-content:space-between;margin:6px 0}
.sum-row.total{border-top:1px dashed var(--line);padding-top:6px;font-weight:900}
.ps-toast {
    position: fixed;
    left: 50%;
    bottom: 24px;
    transform: translate(-50%, 20px);
    background: #10b981; /* emerald */
    color: #fff;
    padding: 12px 16px;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,.15);
    opacity: 0;
    transition: opacity .25s ease, transform .25s ease;
    z-index: 999999;
    font-weight: 600;
}
.ps-toast.show {
    opacity: 1;
    transform: translate(-50%, 0);
}
