:root{--bcd-red: #C8102E;--bcd-red-dark: #A00D24;--bcd-blue: #58A9F9;--bcd-blue-tint: #EBF4FE;--bcd-surface: #F7F7F8;--bcd-alt-row: #FDF2F4;--bcd-border: #CCCCCC;--bcd-text: #1A1A1A;--bcd-text-muted: #666666;--bcd-white: #FFFFFF;--status-prospect: #58A9F9;--status-acquired: #F4B400;--status-customer: #2E7D32;--status-lapsed: #757575;--font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;--radius: 6px;--shadow-sm: 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 2px 6px rgba(0,0,0,.1)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font-family);font-size:15px;color:var(--bcd-text);background:var(--bcd-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--bcd-red);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-family);font-size:15px;border:none;border-radius:var(--radius);padding:10px 16px;cursor:pointer;background:var(--bcd-red);color:var(--bcd-white);font-weight:600;transition:background .12s ease}button:hover{background:var(--bcd-red-dark)}button:disabled{background:var(--bcd-border);cursor:not-allowed}button.secondary{background:var(--bcd-white);color:var(--bcd-text);border:1px solid var(--bcd-border)}button.secondary:hover{background:var(--bcd-surface)}input,select,textarea{font-family:var(--font-family);font-size:15px;padding:10px 12px;border:1px solid var(--bcd-border);border-radius:var(--radius);background:var(--bcd-white);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--bcd-blue);box-shadow:0 0 0 3px var(--bcd-blue-tint)}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--bcd-white);border-bottom:1px solid var(--bcd-border);position:sticky;top:0;z-index:1000;box-shadow:var(--shadow-sm)}.app-header img.logo{height:56px;width:auto}.app-header .title{font-weight:700;font-size:16px;color:var(--bcd-red);letter-spacing:.2px}.app-header .spacer{flex:1}.app-header .rep-pill{font-size:13px;color:var(--bcd-text-muted);border:1px solid var(--bcd-border);border-radius:999px;padding:4px 10px;background:var(--bcd-surface)}.app-header .rep-pill strong{color:var(--bcd-text)}.app-main{flex:1;padding:16px}.tab-bar{display:flex;gap:4px;padding:0 16px;background:var(--bcd-white);border-bottom:1px solid var(--bcd-border);position:sticky;top:53px;z-index:999}.tab-bar a{padding:12px 16px;color:var(--bcd-text-muted);font-weight:600;border-bottom:3px solid transparent}.tab-bar a.active{color:var(--bcd-red);border-bottom-color:var(--bcd-red)}.login-card{max-width:380px;margin:60px auto 0;padding:28px;background:var(--bcd-white);border-radius:var(--radius);box-shadow:var(--shadow-md)}.login-card img.logo{height:120px;display:block;margin:0 auto 20px}.login-card h1{margin:0 0 6px;font-size:22px;color:var(--bcd-red);text-align:center}.login-card p.subtitle{margin:0 0 24px;color:var(--bcd-text-muted);font-size:13px;text-align:center}.login-card label{display:block;font-size:13px;font-weight:600;color:var(--bcd-text-muted);margin-bottom:6px}.status-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--bcd-white)}.status-badge.prospect{background:var(--status-prospect)}.status-badge.acquired{background:var(--status-acquired);color:var(--bcd-text)}.status-badge.customer{background:var(--status-customer)}.status-badge.lapsed{background:var(--status-lapsed)}.contractor-list{display:flex;flex-direction:column;gap:8px}.contractor-row{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bcd-white);border:1px solid var(--bcd-border);border-radius:var(--radius);cursor:pointer}.contractor-row:hover{border-color:var(--bcd-red)}.contractor-row .meta{flex:1;min-width:0}.contractor-row .meta .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contractor-row .meta .address{font-size:13px;color:var(--bcd-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-shell{height:calc(100vh - 110px)}.leaflet-container{height:100%;width:100%}.leaflet-marker-pin{width:18px;height:18px;border-radius:50%;border:2px solid var(--bcd-white);box-shadow:0 0 0 1px #0006}.leaflet-popup-content{font-family:var(--font-family)}.leaflet-popup-content .name{font-weight:700}.leaflet-popup-content .small{font-size:12px;color:var(--bcd-text-muted)}.detail-card{background:var(--bcd-white);border:1px solid var(--bcd-border);border-radius:var(--radius);padding:18px;margin-bottom:16px}.detail-card h2{margin:0 0 6px;font-size:20px}.detail-card .row{display:flex;gap:12px;font-size:14px;color:var(--bcd-text-muted);margin-bottom:4px}.timeline{display:flex;flex-direction:column;gap:6px;margin-top:10px}.timeline-item{display:flex;gap:10px;padding:10px;background:var(--bcd-alt-row);border-radius:var(--radius);font-size:14px}.timeline-item .when{color:var(--bcd-text-muted);font-size:12px;min-width:100px}.timeline-item .kind{font-weight:700;text-transform:uppercase;font-size:11px}.log-form{display:grid;gap:10px;background:var(--bcd-blue-tint);border:1px solid var(--bcd-blue);border-radius:var(--radius);padding:14px}.log-form .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.empty{color:var(--bcd-text-muted);text-align:center;padding:40px 0;font-size:14px}
