:root{--bg:#f4f5f7;--surface:#fff;--surface-alt:#fafbfc;--border:#e3e6ea;--text:#14181f;--text-muted:#61697a;--accent:#4f46e5;--accent-contrast:#fff;--accent-tint:color-mix(in srgb, var(--accent) 7%, var(--surface));--danger:#d92d20;--danger-soft:#fdecea;--radius:14px;--radius-sm:9px;--shadow:0 1px 2px #1018280f, 0 8px 24px #1018280f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,Apple Color Emoji,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0d1017;--surface:#161a23;--surface-alt:#1c212c;--border:#2a303d;--text:#e8eaef;--text-muted:#9aa3b5;--accent:#8b85ff;--accent-contrast:#14181f;--accent-tint:color-mix(in srgb, var(--accent) 13%, var(--surface));--danger:#ff6b5e;--danger-soft:#35201f;--shadow:0 1px 2px #0006, 0 10px 30px #00000059}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);margin:0;font-size:16px;line-height:1.5}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{flex-direction:column;gap:20px;max-width:860px;margin:0 auto;padding:48px 20px 80px;display:flex}.app-header h1{letter-spacing:-.02em;margin:0;font-size:2rem;font-weight:650}.app-subtitle{color:var(--text-muted);margin:4px 0 0;font-size:.925rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.card-title{letter-spacing:-.01em;margin:0 0 16px;font-size:1.05rem;font-weight:600}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label,.search-label{color:var(--text-muted);letter-spacing:.01em;font-size:.8rem;font-weight:600}.input{width:100%;font:inherit;color:var(--text);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:.95rem;transition:border-color .12s,box-shadow .12s}.input::placeholder{color:var(--text-muted);opacity:.75}.input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.input-invalid{border-color:var(--danger)}.field-error{color:var(--danger);margin:0;font-size:.8rem}.form-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.button{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-alt);color:var(--text);cursor:pointer;padding:9px 16px;font-size:.9rem;font-weight:550;transition:background .12s,border-color .12s,transform 60ms}.button:hover{border-color:color-mix(in srgb, var(--text) 25%, var(--border))}.button:active{transform:translateY(1px)}.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.button-primary:hover{background:color-mix(in srgb, var(--accent) 85%, black);border-color:#0000}.button-ghost{background:0 0}.button-small{padding:5px 11px;font-size:.825rem}.button-danger{background:var(--danger);border-color:var(--danger);color:#fff}.button-danger:hover{background:color-mix(in srgb, var(--danger) 85%, black);border-color:#0000}.button-danger-ghost{color:var(--danger);background:0 0}.button-danger-ghost:hover{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.search{flex-direction:column;gap:6px;margin-bottom:18px;display:flex}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.contact-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.925rem}.contact-table th,.contact-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 12px}.contact-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.775rem;font-weight:600}.contact-table tbody tr:last-child td{border-bottom:none}.contact-table tbody tr:not(.row-editing):hover td{background:var(--surface-alt)}.contact-table tbody tr td{transition:background .14s}.row-editing td{background:var(--accent-tint);border-bottom-color:color-mix(in srgb, var(--accent) 28%, transparent)}.row-editing td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.row-editing .row-actions .button:first-child{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:0 0}.name-cell{align-items:center;gap:9px;display:inline-flex}.editing-badge{text-transform:uppercase;letter-spacing:.07em;color:var(--accent);background:color-mix(in srgb, var(--accent) 13%, transparent);border:1px solid color-mix(in srgb, var(--accent) 32%, transparent);border-radius:999px;padding:0 8px;font-size:.66rem;font-weight:650;line-height:1.7}.row-actions{gap:8px;display:flex}.empty-state{text-align:center;color:var(--text-muted);margin:0;padding:28px 8px;font-size:.925rem}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#090c128c;place-items:center;padding:20px;animation:.14s ease-out backdrop-in;display:grid;position:fixed;inset:0}.modal-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(420px,100%);box-shadow:var(--shadow);padding:24px;animation:.16s cubic-bezier(.2,.9,.3,1) panel-in}.modal-title{margin:0 0 8px;font-size:1.1rem;font-weight:620}.modal-body{color:var(--text-muted);margin:0 0 20px;font-size:.925rem}.modal-actions{justify-content:flex-end;gap:10px;display:flex}@keyframes backdrop-in{0%{opacity:0}}@keyframes panel-in{0%{opacity:0;transform:scale(.96)translateY(6px)}}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow);z-index:60;border-radius:999px;padding:10px 18px;font-size:.875rem;font-weight:550;animation:.18s ease-out toast-in;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=640px){.app{padding:28px 14px 60px}.form-grid{grid-template-columns:1fr}.card{padding:18px}}
