body{margin:0;font-family:Noto Sans KR,sans-serif;background:#f9fafb}:root{--main-blue: #1e90ff;--muted: #6b7280;--bg: #ffffff;--text: #111827;--danger: #ef4444;--focus-ring: rgba(30, 144, 255, .08);--card-shadow: 0 8px 24px rgba(16, 24, 40, .08)}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:#333;font-family:Noto Sans KR,sans-serif}.form-hint{font-size:12px;color:#9aa0a6}.btn{background:var(--main-blue);color:#fff;border:none;padding:10px 16px;border-radius:10px;font-weight:600;cursor:pointer;min-width:140px}.btn[disabled]{opacity:.6;cursor:not-allowed}.save-btn{background-color:#007bff;color:#fff;padding:8px 14px;border:none;border-radius:6px;cursor:pointer}.cancel-btn{background-color:#ccc;color:#000;padding:8px 14px;border:none;border-radius:6px;cursor:pointer}.add-button{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:#fff;color:#2563eb;border:2px solid #2563eb;border-radius:50%;width:64px;height:64px;font-size:36px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #0000001a;transition:background .2s,color .2s}.add-button:hover{background:#2563eb;color:#fff}.modal-overlay{position:fixed;inset:0;background-color:#0006;display:flex;justify-content:center;align-items:center;animation:fadeIn .2s ease}.modal-content{background-color:#fff;border-radius:12px;padding:24px;width:90%;max-width:400px;box-shadow:0 4px 12px #0003;animation:slideUp .25s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.form-group{margin-bottom:12px}.form-group label{display:block;margin-bottom:4px;font-weight:600}.form-label{display:flex;align-items:center;gap:8px}.form-group input,.form-group select{width:100%;padding:8px;border-radius:6px;border:1px solid #ccc}input:disabled{background-color:#f5f5f5;color:#999;cursor:not-allowed}.button-group{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.menu-wrapper{position:relative}.menu-button{background:none;border:none;font-size:20px;color:#9ca3af;cursor:pointer}.action-menu{position:absolute;top:28px;right:0;min-width:70px;background:#fff;border-radius:10px;box-shadow:0 12px 30px #1018281f;border:1px solid rgba(17,24,39,.06);padding:6px;z-index:10}.action-menu button{width:100%;padding:10px 14px;background:none;border:none;text-align:center;font-size:14px;color:#111827;border-radius:8px;transition:background .15s ease,color .15s ease}.action-menu button:hover{background:#f5f5f5}.action-menu button.danger{color:#e53935}.action-menu button.danger:hover{background:#fff1f2}.icon-button{border:none;background:transparent;cursor:pointer;font-size:22px;transition:transform .2s ease,opacity .2s}.icon-button:hover{transform:scale(1.15);opacity:.8}.icon-button.delete:hover{color:#dc2626}.icon-button.edit:hover{color:#2563eb}.login-page,.signup-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.card{width:100%;background:#fff;border-radius:12px;box-shadow:var(--card-shadow);padding:28px}.login-page .card{max-width:400px}.signup-page .card{max-width:420px}.brand{margin:0 0 18px;font-size:28px;font-weight:700;color:var(--main-blue);text-align:center}.field{margin-bottom:14px}.field label{display:block;font-size:13px;margin-bottom:6px;color:var(--text)}.field input[type=text],.field input[type=tel],.field input[type=password]{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #e6e9ee;font-size:14px;outline:none}.field input:focus{box-shadow:0 0 0 4px var(--focus-ring);border-color:var(--main-blue)}.help{font-size:12px;color:var(--muted);margin-top:6px}.error{margin-top:6px;color:var(--danger);font-size:13px}.actions{display:flex;justify-content:center;margin-top:16px}.signup-link,.signin-link{text-align:center;margin-top:16px;font-size:13px;color:var(--muted)}.signup-link a,.signin-link a{color:var(--main-blue);text-decoration:none}@media(max-width:480px){.card{padding:20px;border-radius:10px}.brand{font-size:24px}}.car-list-page{background-color:#f9fafb;min-height:100vh;max-width:480px;margin:0 auto;padding:24px 16px 80px;color:#333;position:relative}.car-list-page .header{margin-bottom:24px;text-align:left;line-height:1.5}.car-list-page .greeting{font-size:22px;font-weight:600;margin:0}.car-list-page .user-phone{font-size:18px;color:#6b7280;margin:0}.car-list-page .car-list{flex:1;display:flex;flex-direction:column;gap:12px}.car-list-page .car-card{display:flex;align-items:flex-start;gap:12px;background:#fff;border-radius:10px;padding:12px 14px;box-shadow:0 1px 3px #00000014;transition:all .3s ease}.car-list-page .car-card:hover{transform:translateY(-4px);box-shadow:0 4px 10px #0000001a}.car-list-page .car-image{width:64px;height:64px}.car-list-page .car-info-top{display:flex;justify-content:space-between;align-items:center}.car-list-page .car-info{flex:1;padding:12px 14px}.car-list-page .car-title{display:flex;align-items:center;gap:8px}.car-list-page .car-name{font-size:16px;font-weight:600;margin:0}.car-list-page .car-desc{font-size:13px;color:#6b7280;margin:4px 0 0}.car-list-page .empty-container{display:flex;justify-content:center;align-items:center;height:calc(100vh - 200px)}.car-list-page .empty-text{font-size:15px;color:#555}.car-list-page .qr-column{display:flex;flex-direction:column;align-items:center;width:72px}.car-list-page .qr-download-btn{padding:6px 8px;font-size:11px;line-height:1;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.car-list-page .qr-download-btn:hover{background:#dbeafe;border-color:#93c5fd}.contact-list-page{background-color:#f9fafb;min-height:100vh;max-width:480px;margin:0 auto;padding:24px 16px 80px;color:#333;position:relative}.contact-list-page .car-header{margin-bottom:24px;text-align:left;line-height:1.5}.contact-list-page .car-name{font-size:22px;font-weight:600;margin:0}.contact-list-page .car-message{font-size:18px;color:#6b7280;margin:0}.contact-list-page .header-buttons{display:flex;gap:8px}.contact-list-page .contact-list{display:flex;flex-direction:column;gap:12px}.contact-list-page .contact-card{align-items:center;background:#fff;border-radius:10px;padding:12px 14px;box-shadow:0 1px 3px #00000014;transition:all .3s ease}.contact-list-page .contact-card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #00000026}.contact-list-page .contact-top{display:flex;justify-content:space-between;align-items:center}.contact-list-page .contact-title{display:flex;align-items:center;gap:8px}.contact-list-page .contact-name{font-size:16px;font-weight:500}.contact-list-page .contact-status{font-size:13px;background:#e0edff;color:#2563eb;padding:2px 8px;border-radius:8px}.contact-list-page .contact-status.unavailable{background:#ffc3cc;color:#ff4040}.contact-list-page .contact-type.main{font-size:13px;background:#defdcf;color:#31a71c;padding:2px 8px;border-radius:8px}.contact-list-page .contact-phone{margin:8px 0 0 2px;font-size:14px;color:#4b5563}
