*{box-sizing:border-box}body{margin:0;font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;background:#f5f6f8;color:#1f2933}.app{max-width:1100px;margin:0 auto;padding:24px 20px 60px}header h1{font-size:22px;margin:0}header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.back-link{font-size:14px;color:#3b82f6;text-decoration:none}.back-link:hover{text-decoration:underline}.layout{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}@media (max-width: 820px){.layout{grid-template-columns:1fr}}.panel{background:#fff;border:1px solid #e4e7eb;border-radius:10px;padding:18px}h2{font-size:16px;margin:0 0 14px}label{display:block;font-size:13px;color:#52606d;margin-bottom:12px}input,select,textarea{width:100%;margin-top:5px;padding:8px 10px;border:1px solid #cbd2d9;border-radius:6px;font-size:14px;font-family:inherit;background:#fff}input:focus,select:focus,textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.req{color:#e12d39}.field-error{display:block;color:#e12d39;font-size:12px;margin-top:4px}button{padding:8px 14px;border:1px solid transparent;border-radius:6px;background:#3b82f6;color:#fff;font-size:14px;cursor:pointer}button:disabled{opacity:.6;cursor:default}button.ghost{background:transparent;border-color:#cbd2d9;color:#334e68}button.ghost.danger{color:#e12d39;border-color:#f4b6bb}.actions{display:flex;gap:8px;margin-top:6px}.search-bar{display:flex;gap:10px;margin-bottom:16px}.search-input{flex:1}.search-bar select{width:140px}.banner{padding:10px 12px;border-radius:6px;font-size:14px;margin-bottom:14px}.banner.error{background:#fdecee;color:#b8182a;border:1px solid #f4b6bb}.muted{color:#9aa5b1}.customer-table{width:100%;border-collapse:collapse;font-size:14px}.customer-table th,.customer-table td{text-align:left;padding:10px 8px;border-bottom:1px solid #eef0f2;vertical-align:top}.customer-table th{color:#52606d;font-weight:600;font-size:13px}.customer-table .notes{max-width:220px;white-space:pre-wrap;word-break:break-word}.col-actions{white-space:nowrap;width:1%}.status{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}.status-potential{background:#e0e8f9;color:#2b4d9c}.status-deal{background:#d7f5e3;color:#1a7f47}.status-lost{background:#f2e3e5;color:#9c2b3a}.tags{display:flex;flex-wrap:wrap;gap:4px}.tag{background:#eef0f2;color:#52606d;border-radius:4px;padding:1px 6px;font-size:12px}
