/**handles:qm-pi-frontend**/
.qm-pi-finder-container { background: #ffffff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.05); padding: 40px; margin: 40px 0; font-family: sans-serif; }
.qm-pi-finder-header { text-align: center; margin-bottom: 40px; }
.qm-pi-finder-header h2 { color: #d35400; font-weight: 800; font-size: 28px; margin-bottom: 10px; }
.qm-pi-finder-step { margin-bottom: 25px; }
.qm-pi-step-label { font-weight: 700; color: #2c3e50; font-size: 16px; margin-bottom: 12px; }
.qm-pi-pill-group { display: flex; flex-wrap: wrap; gap: 10px; }
.qm-pi-pill { padding: 10px 20px; background: #f8f9fa; border: 2px solid #ecf0f1; border-radius: 50px; color: #555; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s; user-select: none; }
.qm-pi-pill.active { background: #fff4e6; border-color: #e67e22; color: #d35400; }
.qm-pi-finder-action { text-align: center; margin-top: 35px; padding-top:20px; border-top:1px dashed #eee;}
.qm-pi-btn-primary { background: #e67e22; color: #fff; border: none; padding: 16px 45px; font-size: 18px; font-weight: 700; border-radius: 50px; cursor: pointer; }
.qm-pi-btn-primary.is-loading { opacity: 0.7; pointer-events: none; }
.qm-pi-results-header h3 { font-size: 22px; text-align: center; margin-bottom:20px; }
.qm-highlight { color: #27ae60; font-weight: 900; font-size: 26px; }
.qm-pi-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 25px; }
.qm-pi-card { background: #fff; border: 1px solid #ecf0f1; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; position:relative; transition: all 0.3s;}
.qm-pi-card:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.08); transform: translateY(-3px);}
.qm-pi-badge-top { position: absolute; top: 15px; right: -30px; background: #e74c3c; color: #fff; font-size: 12px; font-weight: bold; padding: 5px 30px; transform: rotate(45deg); z-index: 2; }
.qm-pi-card-img { display: block; width: 100%; height: 200px; background-size: cover; background-position: center; border-bottom: 1px solid #f5f5f5; }
.qm-pi-card-content { padding: 20px; display: flex; flex-direction: column; flex-grow: 1; }
.qm-pi-card-content h4 { margin: 0 0 15px 0; font-size: 18px; line-height:1.4;}
.qm-pi-card-content h4 a { color: #2c3e50; text-decoration: none; }
.qm-pi-score-container { margin-bottom: 15px; }
.qm-pi-score-bar-bg { width: 100%; height: 6px; background: #e0e0e0; border-radius: 10px; margin-top:5px; }
.qm-pi-score-bar-fill { height: 100%; border-radius: 10px; }
.qm-pi-ai-reasons { margin-bottom: 20px; background: #f0fdf4; padding: 15px; border-left: 4px solid #2ecc71; border-radius: 4px; }
.qm-pi-ai-reasons strong { color: #166534; font-size: 13px; display:block; margin-bottom:8px; }
.qm-pi-ai-reasons ul { list-style: none; padding: 0; margin: 0; }
.qm-pi-ai-reasons li { font-size: 13px; color: #15803d; margin-bottom: 4px; font-weight: 500;}
.qm-pi-btn-outline { display: block; text-align: center; padding: 12px; border: 2px solid #e67e22; color: #e67e22; border-radius: 6px; font-weight: 700; text-decoration: none; margin-top: auto; }
.qm-pi-btn-outline:hover { background: #e67e22; color: #fff; }
.qm-pi-alert { padding: 20px; border-radius: 8px; font-size: 15px; line-height: 1.5; margin-bottom:20px; text-align:center;}
.qm-pi-warning { background: #fff3cd; color: #856404; border: 1px solid #ffeeba; }
.qm-pi-info { background: #e8f4f8; color: #31708f; border: 1px solid #bce8f1; }
.qm-skeleton-box { height: 300px; background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200% 100%; animation: qm-skeleton 1.5s infinite; border-radius: 10px; margin-bottom: 20px; }
@keyframes qm-skeleton { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.qm-pi-data-box { background: #fff; border: 1px solid #e1e8ed; padding: 20px; border-radius: 6px; margin-bottom: 30px; }
.qm-pi-data-box h4 { margin-top: 0; color: #2c3e50; border-bottom: 2px solid #e67e22; padding-bottom: 10px; display: inline-block; }
.qm-pi-data-box ul { list-style: none; padding: 0; margin: 0; }
.qm-pi-data-box li { display: flex; padding: 8px 0; border-bottom: 1px solid #f5f5f5; }
.qm-lbl { width: 120px; font-weight: bold; color: #555; }
.qm-val { color: #222; font-weight: 500; }