body{font-size:14px}
.container{max-width:1100px;margin:20px auto;padding:0 16px}

.ctrl-panel{background:white;border-radius:12px;padding:20px 24px;box-shadow:0 2px 8px rgba(0,0,0,.08);margin-bottom:20px}
.ctrl-title{font-size:1rem;font-weight:700;margin-bottom:14px;color:#1e40af}
.ctrl-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ctrl-row:last-child{margin-bottom:0}
.ctrl-label{font-size:.85rem;font-weight:600;color:#475569;min-width:60px}
.ctrl-select{font-size:.9rem;padding:6px 10px;border-radius:6px;border:1px solid #cbd5e1;background:white;color:#1e293b;cursor:pointer}
.ctrl-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.2)}
.ctrl-input{font-size:.9rem;padding:6px 10px;border-radius:6px;border:1px solid #cbd5e1;background:white;color:#1e293b;width:100px;text-align:center}
.ctrl-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.2)}
.ctrl-btn{font-size:.9rem;padding:7px 20px;border-radius:6px;border:none;background:#2563eb;color:white;cursor:pointer;font-weight:600;transition:background .15s}
.ctrl-btn:hover{background:#1d4ed8}
.ctrl-btn:disabled{background:#94a3b8;cursor:not-allowed}
.ctrl-hint{font-size:.75rem;color:#94a3b8;margin-top:4px}

.preset-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.preset-btn{font-size:.78rem;padding:4px 12px;border-radius:14px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;cursor:pointer;transition:all .15s}
.preset-btn:hover{background:#e0f2fe;border-color:#93c5fd;color:#1e40af}

.cond-row{padding:4px 0;border-bottom:1px dashed #e2e8f0}
.cond-row:last-child{border-bottom:none}
.cond-row .ctrl-label{min-width:50px;font-size:.82rem}
.cond-logic-tag{display:inline-block;font-size:.72rem;font-weight:700;border-radius:10px;padding:2px 10px;margin:4px 0 4px 50px;cursor:pointer;user-select:none;transition:all .15s}
.cond-logic-tag.and{color:#2563eb;background:#dbeafe;border:1px solid #93c5fd}
.cond-logic-tag.or{color:#db2777;background:#fce7f3;border:1px solid #f9a8d4}

.chart-box{background:white;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.08);padding:20px;margin-bottom:20px}
.chart-title{font-size:.9rem;font-weight:700;color:#334155;margin-bottom:12px}
canvas{display:block;width:100%;cursor:crosshair}

.result-box{background:white;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.08);overflow:hidden;margin-bottom:20px}
.result-header{background:#1e3a5f;color:white;padding:10px 20px;font-weight:700;font-size:.9rem}
.result-tbl{width:100%;border-collapse:collapse}
.result-tbl th{background:#f1f5f9;padding:8px 14px;text-align:center;font-size:.82rem;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;white-space:nowrap}
.result-tbl td{padding:8px 14px;text-align:center;font-size:.88rem;border-bottom:1px solid #f1f5f9;white-space:nowrap}
.result-tbl tr:hover{background:#f8fafc}
.result-tbl a{color:#2563eb;text-decoration:none;font-weight:600}
.result-tbl a:hover{text-decoration:underline}
.pct-bar{display:inline-block;height:18px;border-radius:3px;vertical-align:middle;margin-right:6px;min-width:2px}
.pct-text{font-weight:700}

.empty-msg{text-align:center;padding:60px 20px;color:#94a3b8;font-size:1rem}

.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;z-index:999;font-size:1.1rem;color:#475569;font-weight:600}
.loading-overlay .spinner{width:28px;height:28px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .6s linear infinite;margin-right:12px}
@keyframes spin{to{transform:rotate(360deg)}}

.match-list-header{background:#1e3a5f;color:white;padding:10px 20px;font-weight:700;font-size:.9rem;display:flex;justify-content:space-between;align-items:center}
.match-list-count{font-size:.8rem;font-weight:400;color:#93c5fd}
.match-tbl th.sortable{cursor:pointer;user-select:none}
.match-tbl th.sortable:hover{background:#e2e8f0}
.match-tbl th .sort-arrow{font-size:.7rem;margin-left:2px;color:#94a3b8}
.match-tbl th.sort-active .sort-arrow{color:#2563eb}

.industry-badge{display:inline-block;background:#e0f2fe;color:#0369a1;font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:3px}
.my-preset-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 0;border-top:1px solid #e2e8f0;margin-top:6px}
.my-preset-btn{padding:4px 12px;border:1px solid #2563eb;border-radius:16px;font-size:.78rem;background:#eff6ff;cursor:pointer;color:#2563eb;font-weight:500;transition:all .12s;position:relative}
.my-preset-btn:hover{background:#dbeafe}
.my-preset-del{position:absolute;top:-6px;right:-6px;width:16px;height:16px;background:#ef4444;color:white;border:none;border-radius:50%;font-size:10px;cursor:pointer;display:none;line-height:16px;text-align:center;padding:0}
.my-preset-btn:hover .my-preset-del{display:block}

@media(max-width:700px){
  .ctrl-row{gap:6px}
  .ctrl-input{width:70px;font-size:.8rem}
  .ctrl-select{font-size:.8rem}
  .ctrl-label{min-width:40px;font-size:.78rem}
  .preset-row{gap:4px}
  .preset-btn{font-size:.7rem;padding:3px 8px}
  .result-tbl th,.result-tbl td{padding:5px 6px;font-size:.76rem}
  .container{padding:0 8px}
}
