*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Inter',system-ui,sans-serif;background:#f8fafc;color:#1e293b;line-height:1.5}.container{max-width:1200px;margin:0 auto;padding:40px 20px}header{text-align:center;margin-bottom:40px}h1{font-size:2.5rem;font-weight:700;color:#0f172a;margin-bottom:8px}.subtitle{color:#64748b;font-size:1.1rem}.summary{display:flex;gap:16px;justify-content:center;margin:30px 0;flex-wrap:wrap}.stat-box{background:white;padding:16px 32px;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,0.1);min-width:120px}.stat-box .num{font-size:1.75rem;font-weight:700}.stat-box .lbl{color:#64748b;font-size:0.85rem}.stat-box.green .num{color:#16a34a}.stat-box.yellow .num{color:#ca8a04}.stat-box.red .num{color:#dc2626}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}@keyframes countUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(22,163,74,0.4)}50%{box-shadow:0 0 0 8px rgba(22,163,74,0)}}.card{transition:transform 0.2s,box-shadow 0.2s}.card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.12)}.card .score{animation:countUp 0.5s ease-out}.funnel{display:flex;gap:4px;margin:20px 0;justify-content:center;flex-wrap:wrap}.funnel-stage{text-align:center;padding:12px 16px;background:white;border-radius:8px;min-width:100px;position:relative}.funnel-stage::after{content:"→";position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:#cbd5e1}.funnel-stage:last-child::after{content:""}.funnel-stage .count{font-size:1.5rem;font-weight:700}.funnel-stage .label{font-size:0.75rem;color:#64748b}.stale{animation:stale-pulse 1s infinite}@keyframes stale-pulse{0%,100%{box-shadow:inset 0 0 0 2px #f97316}50%{box-shadow:inset 0 0 0 2px transparent}}.notes{font-size:0.8rem;color:#64748b;margin-top:8px;padding:8px;background:#f8fafc;border-radius:6px;white-space:pre-wrap;cursor:pointer;transition:all 0.2s;position:relative}.notes:hover{background:#f1f5f9}.notes::after{content:"✏️";position:absolute;right:8px;top:8px;opacity:0;transition:opacity 0.2s}.notes:hover::after{opacity:1}.notes.expanded{max-height:none}.notes-empty{font-size:0.75rem;color:#94a3b8;padding:6px 8px;border:1px dashed #e2e8f0;border-radius:6px;cursor:pointer;text-align:center;margin-top:8px}.notes-empty:hover{border-color:#94a3b8;color:#64748b}#edit-notes{transition:border-color 0.2s}#edit-notes:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px rgba(59,130,246,0.1)}.char-count{font-size:0.7rem;color:#94a3b8;text-align:right;margin-top:4px}.stale-warning{position:absolute;top:8px;left:8px;font-size:0.7rem;background:#fef3c7;color:#b45309;padding:2px 6px;border-radius:4px}.status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:0.7rem;font-weight:600;margin-right:8px}.status-Sourced{background:#e0f2fe;color:#0369a1}.status-Site-Visit{background:#fef9c3;color:#a16207}.status-LOI{background:#dbeafe;color:#1d4ed8}.status-Negotiation{background:#fce7f3;color:#be185d}.status-Signed{background:#dcfce7;color:#16a34a}.days-badge{font-size:0.7rem;color:#94a3b8}.top-pick{position:absolute;top:-8px;left:16px;background:linear-gradient(135deg,#16a34a,#22c55e);color:white;padding:4px 12px;border-radius:12px;font-size:0.7rem;font-weight:700;animation:pulse 2s infinite;z-index:10}.score-detail{opacity:0;max-height:0;overflow:hidden;transition:all 0.3s ease;font-size:0.75rem;color:#64748b;margin-top:8px;padding-top:0;border-top:0 solid #e2e8f0}.card:hover .score-detail{opacity:1;max-height:100px;padding-top:8px;border-top:1px solid #e2e8f0}.card{background:white;border-radius:16px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,0.1);position:relative;border-left:4px solid #e2e8f0}.card.go{border-left-color:#16a34a}.card.caution{border-left-color:#ca8a04}.card.nogo{border-left-color:#dc2626}.rank{position:absolute;top:12px;right:50px;background:#f1f5f9;color:#64748b;padding:4px 10px;border-radius:20px;font-size:0.75rem;font-weight:600}.edit-btn{position:absolute;top:10px;right:12px;background:none;border:none;cursor:pointer;font-size:1rem;padding:4px 8px;border-radius:6px;opacity:0.5}.edit-btn:hover{opacity:1;background:#f1f5f9}h3{font-size:1.1rem;font-weight:600;margin-bottom:4px;padding-right:80px}.address{color:#64748b;font-size:0.85rem;margin-bottom:8px}.cost{display:flex;gap:8px;margin-bottom:8px;font-size:0.8rem;flex-wrap:wrap}.cost span{background:#ecfdf5;color:#059669;padding:2px 8px;border-radius:4px}.stats{display:flex;gap:12px;margin-bottom:12px}.stats div{flex:1;min-width:0}.label{display:block;color:#94a3b8;font-size:0.7rem;text-transform:uppercase}.value{font-weight:600;font-size:0.9rem}.score-bar{background:#e2e8f0;height:8px;border-radius:4px;overflow:hidden;margin-bottom:8px}.fill{height:100%;border-radius:4px}.card.go .fill{background:linear-gradient(90deg,#16a34a,#22c55e)}.card.caution .fill{background:linear-gradient(90deg,#ca8a04,#eab308)}.card.nogo .fill{background:linear-gradient(90deg,#dc2626,#ef4444)}.score{font-size:1.4rem;font-weight:700}.score span{color:#94a3b8;font-size:0.9rem}.decision{display:inline-block;padding:6px 14px;border-radius:20px;font-size:0.8rem;font-weight:600;margin:8px 0}.card.go .decision{background:#dcfce7;color:#16a34a}.card.caution .decision{background:#fef9c3;color:#ca8a04}.card.nogo .decision{background:#fee2e2;color:#dc2626}.detail-btn{background:none;border:1px solid #e2e8f0;padding:4px 8px;border-radius:6px;font-size:0.75rem;cursor:pointer;margin-top:4px}.detail-btn:hover{background:#f1f5f9}.profit{color:#16a34a}.loss{color:#94a3b8}#costModal .breakdown{display:grid;grid-template-columns:1fr auto;gap:8px;margin:16px 0}#costModal .breakdown dt{color:#64748b}#costModal .breakdown dd{font-weight:600;text-align:right}#costModal .total{border-top:2px solid #e2e8f0;padding-top:8px;margin-top:8px}.weak{color:#64748b;font-size:0.8rem}footer{text-align:center;margin-top:40px;color:#94a3b8;font-size:0.8rem}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:1000;align-items:center;justify-content:center}.modal.active{display:flex}.modal-content{background:white;padding:24px;border-radius:16px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal h2{margin-bottom:16px;font-size:1.25rem}.form-group{margin-bottom:12px}.form-group label{display:block;font-size:0.85rem;color:#64748b;margin-bottom:4px}.form-group input{width:100%;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:0.9rem}.form-group input[type="checkbox"]{width:auto}.checkbox-group{display:flex;align-items:center;gap:8px}.btn-row{display:flex;gap:12px;margin-top:20px}.btn{padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;border:none;font-size:0.9rem}.btn-primary{background:#3b82f6;color:white}.btn-secondary{background:#e2e8f0;color:#64748b}.btn-danger{background:#fee2e2;color:#dc2626}.map-legend{position:absolute;bottom:30px;right:10px;background:white;padding:12px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,0.2);z-index:1000;font-size:0.8rem}.map-legend div{display:flex;align-items:center;gap:8px;margin:4px 0}.map-legend span{width:14px;height:14px;border-radius:50%;display:inline-block}#map{height:400px;border-radius:16px;margin-bottom:20px;display:none}.view-toggle{margin-bottom:20px;display:flex;gap:8px}.view-toggle button{padding:8px 16px;border-radius:8px;border:1px solid #e2e8f0;background:white;cursor:pointer}.view-toggle button.active{background:#3b82f6;color:white;border-color:#3b82f6}@media(max-width:640px){h1{font-size:1.75rem}.grid{grid-template-columns:1fr}}.kanban{display:none;gap:12px;overflow-x:auto;padding-bottom:16px}
.kanban-col{flex:1;min-width:220px;max-width:280px;background:#f1f5f9;border-radius:12px;padding:12px}
.kanban-col h4{font-size:0.85rem;color:#64748b;margin-bottom:12px;display:flex;justify-content:space-between}
.kanban-col h4 span{background:#e2e8f0;padding:2px 8px;border-radius:10px;font-size:0.75rem}
.kanban-card{background:white;border-radius:8px;padding:12px;margin-bottom:8px;cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,0.05);border-left:3px solid #e2e8f0;transition:transform 0.15s,box-shadow 0.15s}
.kanban-card:active{cursor:grabbing}
.kanban-card.dragging{opacity:0.5;transform:rotate(2deg)}
.kanban-card.go{border-left-color:#16a34a}
.kanban-card.caution{border-left-color:#ca8a04}
.kanban-card.nogo{border-left-color:#dc2626}
.kanban-col.drag-over{background:#dbeafe}
